关于Java中整数类型数据的取值范围

要想分析数据的取值范围,首先应该明确两点:

1.java中的数值型数据都是符号数,符号数由符号位和数值位两部分组成,符号位都是用0表示正数,用1表示负数2.java中是以补码来表示数值数据的,正数的补码是其本身,负数的补码是该数绝对值按位取反后再加1。

所谓补码就是将二进制位取反再加1,比如二进制数0011的补码是1101。

以byte类型的数据为例分析其取值范围:byte类型的数据占8个二进制位,由于正数的符号位是0,因此最大的正数应该是0111,1111,将该数转化成十进制数就是127;而负数的符号位是1,因此最小的负数应该是1000,0000,由于该数是补码,因此要求得其十进制下的数值,应该先求得该数绝对值的原码,即将该数减1后按位取反,1000,0000减1得到0111,1111按位取反后是1000,0000,所以该数的绝对值便是128,该数便是-128。

所以byte类型数据的取值范围是-128~~127。

你可能感兴趣的:(Java,SE)