Python 3 将整数正确转换为字节 :

标签 python utf-8 byte

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/

相关文章:

rust - 按位运算,将u32与字节数组进行比较

C++删除char中每个x的x字节

Android 应用程序在加载经过训练的 tensorflow protobuf 模型后崩溃

python - 如何快速列出 1~100 的 list ?

python - 尝试设置 Flask key 时出现奇怪的输出

php - UTF-8贯穿始终

security - 是否可以通过改变语言编码来引入XSS?

python - 如何让python解释器正确处理字符串操作中的非ASCII字符?

python - 在列表中查找元素并输出子列表项

ruby-on-rails - 在 PostgreSQL 和 Ruby Object Mapper 中使用 UTF-8 字符的正确方法是什么?