我有一些软件,它采用以下格式作为输入(这是为MATLAB做的):
[typecast(single(doubleNumber),'uint8') 0]
其中doubleNumber
是任意浮点数。如何使用Python 2.7生成此数据?我的主要问题是我不知道内部是什么类型的。
答案 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]