我们如何在python 3中声明单个字节变量?我想实现C中表示的以下结果:
unsigned char = 0xFF;
我想知道是否可以在python中声明一个8位变量。
感谢您的回答
答案 0 :(得分:9)
Python不像C一样区分字符和字符串,也不关心int
位宽。对于单个字节,您基本上有三个选择:
bytes
(或bytearray
)对象mychar = b'\xff'
(或mychar = bytearray(b'\xff')
)int
您未在range(256)
之外指定值(或使用屏蔽修剪溢出):mychar = 0xff
ctypes
类型,例如mychar = ctypes.c_ubyte(0xff)
最后一个选项主要用于通过ctypes
处理C函数,否则它很慢/不是Pythonic。选项1和2之间的选择取决于您使用它的内容;不同的用例需要不同的方法(尽管索引/迭代bytes
对象可以获得int
值,如果你需要使用这两种形式的话。)