我使用python解析一些ASCII文本,它返回我的字符串: UI8,SI32等...
根据这些字符串,我需要计算类型的最大值,并用以下字符串替换它们: unsigned char,签名长等等......
我在python ctypes lib中找到了,但我无法找到如何获得最大\最小值。
Python在C ++中是否具有与std::numeric_limits
相同的东西?
答案 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
定义留给读者练习。