如何在 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'
我想为 \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'