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

后端 未结 2 1270
执念已碎
执念已碎 2021-01-21 19:49

Certain mathematical operations, especially on data read from hardware drivers, can depend on fixed width of the data type. Example: bitwise shift. What is the Pythonic way of c

相关标签:
2条回答
  • 2021-01-21 20:24

    I would suggest the fixedint library. The classes in that library are named in the following convention:

    [Mutable][U]Int<N>
    

    So for your two examples, the classes would be

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

    This supports things like bit-shifting, etc

    >>> a = fixedint.UInt32(14)
    >>> a
    UInt32(14)
    >>> a << 2
    UInt32(56)
    
    0 讨论(0)
  • 2021-01-21 20:27

    For interfacing with hardware we normally use the struct standard library - specifically struct.pack and struct.unpack not only are fixed widths handled but also endianess issues. See the python 2 or python 3 library manuals.

    0 讨论(0)
提交回复
热议问题