标签:取反 负数 计算 转换 二进制 -128 表示 类型 数据类型
byte tt=(byte)130 等于 -126 。 byte 占一个字节,8bit 。第一位是符号位,0 表示正数,1 表示负数。因此byte 的取值范围 [-128, 127] 。
130的二进制是00000000000000000000000010000010,截取成byte类型只保留后8位,也就是10000010,第1位是符号位0代表正数、1代表负数,这里第一位是1也就是负数,计算机存储的负数是补码,必须将其他位取反再加1,取反加1后这个为-1111110,这个二进制数转换为整数是-126 。
byte a= (byte) 0x00000111; 十六进制 16*16 + 16 + 1 = 256 + 17 = 0000001 00010001 。截取后8位,则 a = 17 。
byte c = (byte)0xFF; 十六进制 15*16 + 15 = 255 = 11111111 , 最前面1表示负数, 存储的是 补码,后面7位取反 加 1 等于 1 , 则 c = -1 。 System.out.println(c); 输入 -1 。
标签:取反 负数 计算 转换 二进制 -128 表示 类型 数据类型
原文地址:http://www.cnblogs.com/z360519549/p/6075946.html