我必须将一个给定的16位整数转换为两个8位整数,然后将它们作为输出使用,它们的头部需要两个8位整数,将它们重新组合为16位输入(不幸的是我无法控制)。我的解决方案有效,但感觉不干净。对于粗略的数字我移位原始数字,对于罚款数字,我看着它以256为模。在python中将16位int分成两个8位整数
所以我应该为粗数字进行底板划分,还是应该取最低的8位罚款的数字(如果是这样怎么样?)?
还是我疯了,使用两种不同的方法来拆分数量不是问题?
def convert(x):
''' convert 16 bit int x into two 8 bit ints, coarse and fine.
'''
c = x >> 8 # The value of x shifted 8 bits to the right, creating coarse.
f = x % 256 # The remainder of x/256, creating fine.
return c, f
只是'返回divmod(x,256)'? – 2010-06-26 09:35:17
我去了: c = x >> 8 f = x&0xff#我以前不知道。 这似乎更真实的是我在做什么,然后divmod或%和/,可能也更接近在另一端执行相同的操作来重新组合它们(我希望)。 – nrn 2010-06-26 09:59:18