byte,short,int和long有符号整数

时间:2021-05-12 15:51:50

1)byte,short,int,long都是有符号整数,与有符号整数对应的是无符号整数;

      两者的区别在于把二进制转换为十进制整数的方式不一样。

  A)有符号整数把二进制数的首位作为符号位,

        当首位是0时,对应十进制的正整数;当首位是1时,对应十进制的负整数。

       例程:1个字节的byte的二进制数,它对应的十进制整数的取值范围是-128~127

      10000000 = -[(2的7次方) * 1]=-128

      01111111=0 + (2的6次方) + (2的5次方) + (2的4次方) + (2的3次方) + (2的2次方) + (2的1次方) + (2的0次方) 

                        =64+32+ 16 + 8 + 4 + 2 + 1 = 127

 B)无符号整数把二进制数的所有位转换为正整数。

      例程:1字节的二进制数,它对应的十进制整数的取值范围是0~255.

     11111111 = 128 + 127 = 256

     00000000 = 0


2)八进制,十六进制的表示

Java语言允许把八进制数(以“0”开头),十六进制数(以“0x开头”)