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

时间:2016-12-22 02:18:56

标签: python python-3.x byte

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

unsigned char = 0xFF;

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

感谢您的回答

1 个答案:

答案 0 :(得分:9)

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)
  4. 最后一个选项主要用于通过ctypes处理C函数,否则它很慢/不是Pythonic。选项1和2之间的选择取决于您使用它的内容;不同的用例需要不同的方法(尽管索引/迭代bytes对象可以获得int值,如果你需要使用这两种形式的话。)