黑马程序员技术交流社区

标题: 请问一下byte型数据范围为什么是从-128到+127 [打印本页]

作者: 蒋自由正在学习    时间: 2018-6-16 20:53
标题: 请问一下byte型数据范围为什么是从-128到+127
这个-128我一直理解不了
作者: 范雨龙    时间: 2018-7-21 18:49
计算机中数值用补码来表示的
正数的补码为原码
负数的补码为反码+1

+7的原码补码都是:0000 0111
-7的原码为:1000 0111       
    反码为:1111 1000
    补码为:1111 1001                       
                       
因此0000 0000-0111 1111 表示为+0- +127
               
1000 0001 - 1111 1111 表示-1 - -127

当原码为1000 0000时
取反码:1111 1111
取补码:1 0000 0000
但是byte仅识别8位字节,并且符号不能变,所以补码是1000 0000
作者: 李啟华    时间: 2018-7-22 23:43
首先java规定了byte类型的数据为1个字节(8位二进制0000_0000——1111_1111),换算成十进制就是-128——127之间。具体算法楼上已给出,你要懂“原反补”。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2