2011-08-03 54 views
2

读我使用:如何将int转换为24位字符串?

def UI24(t): 
    result = 0 
    for i in xrange(3): 
     result = (result << 8); 
     byte = unpack('>b',t[i-1]) 
     result += byte; 
    return result 

和写?

+0

你的地方缺少一个右引号。 –

+0

t [i-1]在循环的第一次迭代中有无效索引! – rocksportrocker

+0

检查此:http://stackoverflow.com/questions/2262100/rgb-int-to-rgb-python –

回答

0

这没有测试!

def UI24back(value): 
    result = "" 
    for i in xrange(3): 
     result = pack('>b', value &255) + result 
     value >>= 8 
    return result 
5

简单只是垫他们当作多头

>>> from struct import pack, unpack 
>>> def unpack24(s): 
...  return unpack(">L","\0"+s)[0] 
... 
>>> def pack24(i): 
...  return pack(">L",i)[1:] 
... 
+0

我相信这将不适用于签名24位:( –