我正在查看一些使用cytypes
库的代码,并且看到了一些新内容:
print("some_num : %04x" % [a c_uint32 number]) # [] used as placeholder
print("another : %01x" % [a c_uint8 number])
print("another1 : %02x" % [a c_uint16 number])
我可以说使用
%
和ctype
编号与格式表示法有关系,但是我不确定那是什么。任何参考的帮助/指针将不胜感激! 最佳答案
c_uint8
使用1个字节(= 8位)。c_uint16
使用2个字节(= 16位)。c_uint32
使用4个字节(= 32位)。
2 hexadecimal digits定义一个字节。这意味着x
之前的数字应为c_uint
之后的数字的四分之一。这样,所有十六进制数将具有相同的长度。
print("another : %02x" % [a c_uint8 number])
print("another1 : %04x" % [a c_uint16 number])
print("some_num : %08x" % [a c_uint32 number])
这是一个小测试:
>>> from numpy import iinfo, uint8, uint16, uint32
>>> iinfo(uint8).max
255
>>> '1 byte : %02x' % 0
'1 byte : 00'
>>> '1 byte : %02x' % iinfo(uint8).max
'1 byte : ff'
>>> '2 bytes : %04x' % 0
'2 bytes : 0000'
>>> '2 bytes : %04x' % iinfo(uint16).max
'2 bytes : ffff'
>>> '4 bytes : %08x' % 0
'4 bytes : 00000000'
>>> '4 bytes : %08x' % iinfo(uint32).max
'4 bytes : ffffffff'
关于python - Python中的C数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47266292/