【问题标题】:Representing int with 8 bits in python's byte array在python的字节数组中用8位表示int
【发布时间】:2022-01-05 19:47:12
【问题描述】:

我需要一个长度为 50 的缓冲区(字节数组列表)(我的网络中的节点,无关紧要),但我需要正好 8 位来表示字节数组,我现在拥有的是:

buffer = []
for position, nodeID in enumerate(range(128,128+50)):
 print(bin(int(bytearray([nodeID]).hex(), base=16)).lstrip('0b'))
 buffer.append(bytearray([nodeID]))
 print(buffer[-1])
print(buffer)

我现在正在做的是将最左边的位置设置为 1,这样我就得到了 8 位,我需要这个布局来进行特定的解码过程。我的问题是:有没有更有效的方法来制作这样的列表? IE: 50 个字节数组的列表,每个字节数组设置为 index+1 (node.id)。 我想省略开头的那些,但仍然希望数据准确地以 8 位表示。

输出:

10000000 字节数组(b'\x80') 10000001 字节数组(b'\x81') 10000010 字节数组(b'\x82')10000011 字节数组(b'\x83')10000100 字节数组(b'\x84')10000101 字节数组(b'\x85')10000110 字节数组(b'\x86')10000111 字节数组(b'\x87')10001000 字节数组(b'\x88')10001001 字节数组(b'\x89')10001010 字节数组(b'\x8a')10001011 字节数组(b'\x8b')10001100 字节数组(b'\x8c')10001101 字节数组(b'\x8d')10001110 字节数组(b'\x8e')10001111 字节数组(b'\x8f')10010000 字节数组(b'\x90')10010001 字节数组(b'\x91')10010010 字节数组(b'\x92')10010011 字节数组(b'\x93')10010100 字节数组(b'\x94')10010101 字节数组(b'\x95')10010110 字节数组(b'\x96')10010111 字节数组(b'\x97')10011000 字节数组(b'\x98')10011001 字节数组(b'\x99')10011010 字节数组(b'\x9a')10011011 字节数组(b'\x9b')10011100 字节数组(b'\x9c')10011101 字节数组(b'\x9d')10011110 字节数组(b'\x9e')10011111 字节数组(b'\x9f')10100000 字节数组(b'\xa0')10100001 字节数组(b'\xa1')10100010 字节数组(b'\xa2')10100011 字节数组(b'\xa3')10100100 字节数组(b'\xa4')10100101 字节数组(b'\xa5')10100110 字节数组(b'\xa6')10100111 字节数组(b'\xa7')10101000 字节数组(b'\xa8')10101001 字节数组(b'\xa9')10101010 字节数组(b'\xaa')10101011 字节数组(b'\xab')10101100 字节数组(b'\xac')10101101 字节数组(b'\xad')10101110 字节数组(b'\xae')10101111 字节数组(b'\xaf')10110000 字节数组(b'\xb0') 10110001

【问题讨论】:

  • 我们可以获取示例输入和输出吗?
  • 对于二进制0/1 int 格式,可以使用format。您还可以指定它应该输出多少位数:format(node_id, "08b")
  • @flakes,我附上了。
  • 我不清楚你到底想要什么。你想要一个字节数组列表,每个长度为 1,单个字节的值大于 0x80,顺序为 +1?
  • @Keith 然后问题是,但是为什么

标签: python arrays python-3.x encoding decoding


【解决方案1】:

假设您想要一个长度为 50 的列表,其中包含一个值为 index + 0x80 的单字节 bytearray,这将做到:

l_of_ba = [bytearray([i + 0x80]) for i in range(50)]

【讨论】:

  • 谢谢,这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
相关资源
最近更新 更多