在C中,我可以做以下操作:
uint8_t number;
number++;
注意:如果数字为>255,则滚动到0。
我怎么做Python?
number += 1
if number>255:
number = 0
这对我来说不是最优的或python的方式。什么好主意吗?
Python提供任意大小的整数。有一种整数类型可以容纳任何大小的整数。
可以通过在自增后使用mod 256来避免使用if语句。
number = (number + 1) % 256
您可以自由地执行所有标准的数学操作,并且每当您需要字节范围内的输出时,只需使用number % 256
而不是number
。或者您可以将此方法扩展到一个类,并在其中定义所有标准操作符(__add__()
,__neg__()
,…)。或者您可以使用ctypes模块中的c_ubyte
数据类型。
您可以使用ctypes
模块,它提供了c中存在的数据类型。
from ctypes import *
a=c_uint8(255)
b=c_uint(1)
c=c_uint8(a.value + b.value)
print(a, b, c)
输出(c_ubyte(255), c_ulong(1L), c_ubyte(0))