簡體   English   中英

如何在 python 中創建一個在 for 循環期間更改值的字節變量?

[英]How to create a byte variable that change value during for loop in python?

我想為\x00\x00\x00\x00\xff\xff\xff\xff范圍內的所有字符打印 utf-8 和 utf-16 之間的差異,我想這樣做:

for i in range (0x10):
  h = hex(i)[2:3]
  byte = b"\x00\x00\x00\x0{i}"

print(byte.decode('utf-16', 'ignore'))
print(byte.decode('utf-8', 'ignore'))

其中 i 在循環期間更改為字節變量,並使用嵌套循環覆蓋字節變量中的所有字節。
有可能做這樣的事情嗎?
是否存在另一種打印 python 中從\x00\x00\x00\x00\xff\xff\xff\xff的所有字節的方法?

struct模塊是構建字節字符串的好工具。 在這里,您可以通過這種方式生成您的:

for i in range(0x10):
    b = struct.pack('>I', i)   # convert an int to a big endian 4 bytes string
    print(b)

它按預期給出:

b'\x00\x00\x00\x00'
b'\x00\x00\x00\x01'
b'\x00\x00\x00\x02'
b'\x00\x00\x00\x03'
b'\x00\x00\x00\x04'
b'\x00\x00\x00\x05'
b'\x00\x00\x00\x06'
b'\x00\x00\x00\x07'
b'\x00\x00\x00\x08'
b'\x00\x00\x00\t'
b'\x00\x00\x00\n'
b'\x00\x00\x00\x0b'
b'\x00\x00\x00\x0c'
b'\x00\x00\x00\r'
b'\x00\x00\x00\x0e'
b'\x00\x00\x00\x0f'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM