LV支持的数据类型种类繁多,其中整型数是种类最多的,包括U8、I8、U16、I32等等。

Picture
对于每一种特定的整型数,都对应这特定的取值范围,比如U8的最大值为255,最小值为0,所以U8的取值范围是0-255。

今天我们要讨论的是如何获取整数数据类型的取值范围的方法:

一、计算法
我们知道U8是由一个字节(8位)构成的,U16是由2个字节(16位)构成的,以此类推,U64由8个字节构成(64位)。因此对于整型无符号数的取值范围很容易计算出来,无符号整数的最小值均为0,最大值可以通过计算得到。

Picture
对于有符号数,因为有符号数的最高位表示数值的符号,所以对于N位整型数,它能表示的最大正数为2的N-1次方,比如I8能表示的最大正数为2的7次方减1,即127,它能表示的最小负数为--127-1=-128,所以I8的取值范围是-128到+127.由此可以得出有符号整型数的取值范围的计算方法。

Picture
二、16进制表示法
在整数的16进制表示方式下,无符号整数的最大值一目了然,非常清晰。对于U8整数,最大值为FF,对于U16整数,最大值为FFFF.

Picture
对于有符号数,取值范围见下图

Picture
三、利用正无穷和负无穷进行类型转换
利用计算法非常繁琐,利用HEX方式必须理解整数的结构,下面的方法是我要介绍的Nugget.我们知道LV提供了正无穷大和负无穷大两个常数,利用这两个常数,通过类型转化函数,就可以获取整数的取值范围。

Picture



Leave a Reply.