繁体   English   中英

固定宽度整数类型(例如uint32)在Python中

[英]Fixed width integer types (e.g. uint32) in Python

某些数学运算(尤其是从硬件驱动程序读取的数据)可能取决于数据类型的固定宽度。 示例:按位移位。 创建具有固定宽度(例如uint32,int16等)的整数变量(会相应地溢出/移位)的Python方法是什么?

我建议使用fixedint库。 该库中的类按以下约定命名:

[Mutable][U]Int<N>

因此,对于您的两个示例,类将是

#    C++                 Python fixedint
 std::uint32                 UInt32
 std::uint16                 UInt16

这支持诸如移位等操作

>>> a = fixedint.UInt32(14)
>>> a
UInt32(14)
>>> a << 2
UInt32(56)

为了与硬件接口,我们通常使用struct标准库-特别是struct.packstruct.unpack不仅要处理固定的宽度,还要解决字节序问题。 请参阅python 2python 3库手册。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM