this question 的答案让它看起来好像有两种方法可以将整数转换为 Python 3 中的 bytes
对象。它们显示
s = str(n).encode()
和
n = 5
bytes( [n] )
一模一样。但是,显示返回值的测试是不同的:
print(str(8).encode())
#Prints b'8'
但是
print(bytes([8])) #prints b'\x08'
我知道第一种方法将 int 8
更改为十六进制值为 56 的字符串(utf-8
我相信),但第二种方法是什么一印?那只是 8 的十六进制值吗? (退格键的 utf-8
值?)
同样,这两个都是一个字节大小吗?似乎第二个有两个字符 == 两个字节,但我可能在那里错了......
最佳答案
b'8'
是一个 bytes
对象,它包含一个字节,字符 '8'
的值等于 56
。
b'\x08'
是一个 bytes
对象,它包含一个值为 8
的字节,与 相同0x8
。
关于Python 3 将整数正确转换为字节 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25496012/