Java学习笔记day02-如何理解二进制中的补码?

补码:解决负数在计算机中的表示问题。正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。

举例:(1)010,其中(1)为符号位“-”,十进制表示为-2。(0)011,其中(0)为符号位“+”,十进制表示为+3。(3-2=1) 二进制计算流程如下:

     3的反码与补码均为本身:即为0011。-2的反码:1101,补码1110。将双方补码相加可得10001,首位溢出,结果为0001,十进制即为1。

二进制减法理解:去掉第一位符号的属性,即0000-1111实际表示为0-15。可以将其理解为传统时钟的刻度。3-2可以看成 (3+16-2)=>(3+14)顺时针转动14格同等于逆时针转动2格。二进制表示为

0010+1110=10001,结果为0001,十进制即为1。可以看出1110即为-2的补码。

补码理解:

 3-2=(3+16-2)

其中16-2意思向右移动14个单位,等同于 刻度范围(0-8)+(8-14)。刻度范围(8-14)长度等同于(10(ps:二进制表达式:1010,若首项带有符号属性十进制则为-2)-16)长度,(10-16)的刻度范围长度即为二进制1010(-2的二进制表达式)去除符号位 0010的反码+1,长度为6,那么总长度即为1000+0110=1110。即为-2补码的转换表达:1010->1101->1110。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值