Python:将float转换为4 uint8

时间:2014-10-03 13:09:43

标签: python-2.7 converter

我有一些软件,它采用以下格式作为输入(这是为MATLAB做的):

[typecast(single(doubleNumber),'uint8') 0]

其中doubleNumber是任意浮点数。如何使用Python 2.7生成此数据?我的主要问题是我不知道内部是什么类型的。

1 个答案:

答案 0 :(得分:0)

将单个浮点数转换为二进制字符串 - 请参阅Binary representation of float in Python (bits not hex)。假设我们给出了浮点Test

import struct
def binary(num):
    return ''.join(bin(ord(c)).replace('0b', '').rjust(8, '0') for c in struct.pack('!f', num))

Test = .25
binTest = binary(Test)

之后我必须将所有8个字符分开并将它们转换为无符号整数 - 请参阅Convert base-2 binary number string to int

bin1 = binTest[ 0: 8]
bin2 = binTest[ 8:16]
bin3 = binTest[16:24]
bin4 = binTest[24:32]
TypecaseOfTest = [int(bin4,2),int(bin3,2),int(bin2,2),int(bin1,2),0]