[英]Convert integer back to 32-bit hex representation then to float?
Say I have some binary data that was converted to 32-bit integer instead of 32-bit floating point (little endian), how can I rectify this? 假设我有一些二进制数据已转换为32位整数而不是32位浮点数(小尾数),该如何纠正呢?
For example: 1155186688
should be 1750
float ( 00 C0 DA 44
hex). 例如:
1155186688
应该是1750
float( 00 C0 DA 44
hex)。
Struct is used for packing and unpacking types into bytes. Struct用于将类型打包和解压缩为字节。
Convert the integer back to bytes, then into a float: 将整数转换回字节,然后转换为浮点数:
struct.unpack('f', struct.pack('I', 1155186688))[0]
Or the long form: 或长格式:
>>> my_bytes = struct.pack('I', 1155186688) # 'I' = Unsigned Int
b'\x00\xc0\xdaD'
>>> my_float = struct.unpack('f', my_bytes)[0] # 'f' = float
1750
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.