Int(2)到16位转换python

Int(2)到16位转换python,python,binary,int,Python,Binary,Int,我正在使用一个数据集,该数据集的一些数据以INT(2)格式存储。我需要将其转换为二进制(16位),以便通过python以有意义的方式读回数据 我目前正在使用: format(value, '016b') 将整数转换为二进制以读回位。因此,考虑到我使用的类型,我希望通过简单的验证来验证我正在进行的转换是否正确(因为我看到的输出与文档中的预期输出不太一致) 例如,根据上面的描述,这些转换后的值有意义吗 2369->000010101000001 18767->0100101001111是的,他们有

我正在使用一个数据集,该数据集的一些数据以INT(2)格式存储。我需要将其转换为二进制(16位),以便通过python以有意义的方式读回数据

我目前正在使用:

format(value, '016b')
将整数转换为二进制以读回位。因此,考虑到我使用的类型,我希望通过简单的验证来验证我正在进行的转换是否正确(因为我看到的输出与文档中的预期输出不太一致)

例如,根据上面的描述,这些转换后的值有意义吗

2369->000010101000001


18767->0100101001111是的,他们有。事实上:

1x2^0+1x2^6+1x2^8+1x2^11=1+64+256+2048=2369

1x2^0+1x2^1+1x2^2+1x2^3+1x2^6+1x2^8+1x2^11+1x2^14=


1+2+4+8+64+256+2048+16384=18767
INT(2)是什么意思?它大概被定义为某些网络或文件格式标准的一部分,或某些软件的文档,或某些其他语言参考,或…什么的。但是有很多东西的名字来自不同的地方,所以我们需要知道你用的是哪一个。理想情况下,链接并引用实际文档。无论如何,大多数表示需要“16位二进制”的东西不需要16个
1
0
字节的字符串;它们需要两个字节。您可能需要
value.to_字节(2,'big',signed=True)
或其他标志组合(或
struct.pack('>h',value)
或其他结构标志组合,如果您需要Python 2兼容性)。文档将其描述为2字节整数。此外,它是以HDF5格式存储的,在检查数据字段时,我查看了它的元数据,其中显示:16位整数,有效_范围(032767)。我想在这种情况下我需要16位二进制,而不是两个字节,因为我需要检查单个位。首先,把它放在问题中,而不是放在注释中。第二,虽然这已经告诉了我们一些事情,但它并没有告诉我们我问的所有问题,也没有告诉我们足够的信息来解决这个问题,而不需要根据人们通常使用HDF5的方式进行猜测。另外,如果您有一些读取元数据并执行相关操作的代码,请向我们展示这些代码及其输出,以及您遇到的问题,而不是含糊其辞。请参阅和其他关于如何编写一个好问题的帮助文章。不幸的是,如果没有帮助,如何有效地使用StackOverflow并不明显。此外,如果您试图做的只是解析和/或生成一些HDF5数据,那么有一些库可以帮您完成所有困难的工作。例如,您可以将整个HDF5文件读入一行程序中的Pandas系列和/或数据帧,而不必担心繁琐的细节。