byte

java byte类型为什么是(127—— -128)

所有的整数类型(除了char 类型之外)都是有符号的整数

因为, java的byte是8bit(位),就是8个0/1 来表示。
但是第一位是符号位,表示正数还是负数。所以:
0000 0001表示1,     (1× 20
0000 0000表示0,     (0× 20

计算机中负数的二进制码是是负数的绝对值取反,然后加1.
例如-1的二进制:
-1的绝对值是1(0000 0001);
取反是(1111 1110);
再加 1(0000 0001 );
结果是(1111 1111)

要对一个负数的二进制进行解码,首先对其所有的位取反,然后加1。
例如-1的 二进制   (1111 1111)
取反: 0000 0000 是0
再加1:(0+1=1)
符号位是1,是负数,所以是-1


正数用不上,负数要记住下面:
从文件到机器:绝对值,取反再加一
从机器到文件:取反加一,再加符号

byte:1个字节,short:2个字节,int:4个字节,long:8个字节,char:2个字节
float:4个字节  double float:8个字节  boolean:1个字节
byte表达的范围是[- 2^7, 2^7 - 1],即-128-----127
依此类推:short:[- 2^15, 2^15 - 1]

int:32 bits, [- 2^31, 2^31 - 1]

long:64 bits, [- 2^63, 2^63 - 1,默认值为0L].

char:16 bits, [0, 65535], [0, 2^16 -1],从'\u0000'到'\uffff'。无符号,默认值为'\u0000'。




你可能感兴趣的:(byte)