在python 3中声明一个单字节变量

Pap*_*one 10 python byte python-3.x

我们如何在python 3中声明单个字节变量?我想实现C中表示的以下结果:

unsigned char = 0xFF;
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以在python中声明一个8位变量.

谢谢你的回答

Sha*_*ger 10

Python不像C那样区分字符和字符串,也不关心int位宽.对于单个字节,您基本上有三个选择:

  1. 长度为1 bytes(或bytearray)的对象mychar = b'\xff'(或mychar = bytearray(b'\xff'))
  2. 一个int你不分配以外的值range(256)(或使用屏蔽修剪溢出):mychar = 0xff
  3. 一种ctypes类型,例如mychar = ctypes.c_ubyte(0xff)

最后一个选项主要是用于处理C函数ctypes,否则它很慢/不是Pythonic.选项1和2之间的选择取决于您使用它的内容; 不同的用例需要不同的方法(尽管索引/迭代bytes对象会在int需要使用两种形式时获取值).