练习三:java中int类型数据的范围

 负数的值计算:
二进制值(1字节) 十进制值 
1000 0000 -128 
1000 0001 -127 
1000 0010 -126 
1000 0011 -125 
… … 
1111 1110 -2 
1111 1111 -1 

 

首先我们看到,从-1到-128,其二进制的最高位都是1(表中标为红色),正如我们前面的学。

然后我们有些奇怪地发现,1000 0000 并没有拿来表示 -0;而1000 0001也不是拿来直观地表示-1。事实上,-1 用1111 1111来表示。

怎么理解这个问题呢?先得问一句是-1大还是-128大?

当然是 -1 大。-1是最大的负整数。以此对应,计算机中无论是字符类型,或者是整数类型,也无论这个整数是几个字节。它都用全1来表示 -1。比如一个字节的数值中:1111 1111表示-1,那么,1111 1111 – 1 是什么呢?和现实中的计算结果完全一致。1111 1111 – 1 = 1111 1110,而1111 1110就是-2。这样一直减下去,当减到只剩最高位用于表示符号的1以外,其它低位全为0时,就是最小的负值了,在一字节中,最小的负值是1000 0000,也就是-128。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据