エンディアンの変換

30分プログラム、その787。anarchy golf - Little Endian Calculatorにインスパイアされて、エンディアンの変換をやってみました。
8ビットごとに区切って順番をひっくりかえしているだけです。

使い方

>>> "%x" % flip_endian(0x3310)
'1033'

t2

ソースコード

#! /usr/bin/python
# -*- mode:python; coding:utf-8 -*-

def split(bytes, value):
    if bytes == 0:
        return []
    else:
        return split(bytes-1, value >> 8) + [ value & 0xFF ]

def join(xs):
    return reduce(lambda x,y: (x << 8) | y ,xs)

def flip_endian(n):
    return join(reversed(split(2,n)))

print "%x" % flip_endian(0x3310)