获取数字(int、float或double)的二进制32表示形式的Python方法

获取数字(int、float或double)的二进制32表示形式的Python方法,python,python-3.x,floating-point,ieee-754,Python,Python 3.x,Floating Point,Ieee 754,与之相关的是,我想知道一种pythonic方法来获取一些int、float或double的IEEE-754二进制32表示 例如,42.0将被转换为10000100 01010 000000000000000000000000 import struct getBin = lambda x: x > 0 and str(bin(x))[2:] or "-" + str(bin(x))[3:] def floatToBinary32(value): val = struct.unp

与之相关的是,我想知道一种pythonic方法来获取一些int、float或double的IEEE-754二进制32表示

例如,42.0将被转换为10000100 01010 000000000000000000000000

import struct

getBin = lambda x: x > 0 and str(bin(x))[2:] or "-" + str(bin(x))[3:]

def floatToBinary32(value):
    val = struct.unpack('I', struct.pack('f', value))[0]
    return getBin(val)

binstr = floatToBinary32(42.0)
print('Binary equivalent of 42.0:')
print(binstr + '\n')

相关人士:谢谢。有内置的解决方案吗?将int转换成二进制很容易:格式(42,“b”),有类似的吗?