检索ctype的最小最小值

时间:2016-02-05 09:02:36

标签: python python-3.x

我使用python解析一些ASCII文本,它返回我的字符串: UI8,SI32等...

根据这些字符串,我需要计算类型的最大值,并用以下字符串替换它们: unsigned char,签名长等等......

我在python ctypes lib中找到了,但我无法找到如何获得最大\最小值。

Python在C ++中是否具有与std::numeric_limits相同的东西?

1 个答案:

答案 0 :(得分:3)

有多少这样的字符串?手动定义它们可能是最快的:

class MaxVal:
    SI8  = 2 ** 7  - 1
    UI8  = 2 ** 8  - 1
    SI16 = 2 ** 15 - 1
    UI16 = 2 ** 16 - 1
    SI32 = 2 ** 31 - 1
    UI32 = 2 ** 32 - 1
    SI64 = 2 ** 63 - 1
    UI64 = 2 ** 64 - 1

或者您可以将它们放在dict中。我将它们放在class的静态属性中,因为它是让你以“感觉像”enum常量的方式引用它们的最佳方式:

print( MaxVal.UI32 )

更多编程方式,如果您的类型字符串是变量,您可以像这样使用它:

dt = 'UI32'
print( getattr(MaxVal, dt) )

相应的MinVal定义留给读者练习。