mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-28 07:36:44 +00:00
22 lines
No EOL
813 B
Python
22 lines
No EOL
813 B
Python
def bitstring_to_bytes(bitstring):
|
||
# 创建一个长度为 (len(value) // 8) + 1 的数组,用于存储字节值,初始化为 0
|
||
array = [0] * ((len(bitstring) // 8) + 1)
|
||
|
||
# 遍历位数组 bitstring,将每个位的值设置到相应的字节中
|
||
for i in range(len(bitstring)):
|
||
# 计算当前位在字节数组中的索引
|
||
byte_index = i // 8
|
||
|
||
# 将当前位的值按位或到相应的字节上,通过左移 (i % 8) 位来设置对应的位置
|
||
array[byte_index] |= int(bitstring[i]) << (i % 8)
|
||
print(array)
|
||
|
||
# 将最后一个字节的最高位设置为 1
|
||
array[len(bitstring) // 8] |= 1 << (len(bitstring) % 8)
|
||
print(array)
|
||
|
||
# 将字节数组转换为 bytes 类型并返回
|
||
return bytes(array)
|
||
|
||
|
||
bitstring_to_bytes("111100001011") |