正值、补码、反码

学习Java基础知识,感觉Java里的整数应该是用补码保存的,这里回顾整理一下各种编码方式


真值:

也就是数字现实中的含义 符号+绝对值,例如+122,-2


原码:

第一位代表真值的正负,【+1】原码=0000 0001 【-1】原码=1000 0001

除去符号位,数字位的取值范围是0000~1111,以8位有符号数为例,取值范围是-111 1111到+111 1111,即[-127,127],但其中0000 0000和1000 0000都表示0,重复了


反码:

正数反码:和原码相同

负数反码:除符号位以外,其他位取反,原码【10010】=反码【11101】=真值【-2】

取值范围:[-127,+127]


补码:

正数补码:和原码相同

负数补码:在其反码的末位加1,即符号位不变,其余位取反+1

取值范围:[-128,127]    (Java中 1个字节长度的Byte的取值范围)

以4位补码为例,0只有+0,没有-0,

1000000是最小的负数
       

2进制          计算 真值
1000 -(111+1)= -1000 -8
1001 -(110+1)= -111 -7
1010 -(101+1)= -110 -6
1011- 101 -5
1100-100 -4
1101- 011 -3
1110- 010 -2
1111- 001 -1
0000~
0111
+0~+7 0~7


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值