为什么二进制整数变负数的时候,需要在反码上 +1

为什么二进制整数变负数的时候,需要在反码上 +1
举个例子
1的负数是-1,-1 + 1时,结果为0,
此时我们用二进制来演算一下,
1的二进制是0001,0的二进制是0000,

此时将1的二进制进行取反,1110(如果用这个当做-1的二进制会发生什么),

如果用1110代表-1,那么+1后,结果应该是0000,也就是10进制中的0,

1110 + 1 = 1111

当直接用反码进行计算时,发现并不是这么回事,而是变成了1111,而当1111再次进行加1时,
由于二进制的进位,所有的1都满足2都变成0,超过4位的被丢弃,此时二进制才变为了0000,
负数的加法多了一步,

而当 0001 变为反码 1110后,直接+1,成为 1111,

随后我们使用 1111 + 1 时,就很自然的变为0了,

这就是二进制整数变负数时反码需要+1的原因了,

自然二进制负数转换为正数时,需要将之前+1的操作流程反着来一遍,

1111 - 1 = 1110

随后 1110 取反,变为 0001,成为正数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 二进制原码表示法是指符号位上数值位,其中符号位 0 表示正数,1 表示负数。数值位用二进制表示数字的大小。 二进制补码表示法是将一个二进制数的原码取反(即将每一位都取反),再 1。例如,原码为 1001,则补码为 0110。 二进制反码表示法是将一个二进制数的原码取反,但不 1。例如,原码为 1001,则反码为 0110。 ### 回答2: 二进制原码是一种表示带符号整数的方法。在二进制原码中,最高位表示符号位,正数的符号位为0,负数的符号位为1,其它位表示数值部分。例如,+5的二进制原码为00000101,-5的二进制原码为10000101。 二进制补码是一种表示带符号整数的方法,主要用于计算机内部。在二进制补码中,正数的补码与原码相同,负数的补码是该数的反码1。例如,+5的二进制补码仍为00000101,-5的二进制补码为11111011。 二进制反码是一种表示带符号整数的方法,也用于计算机内部。在二进制反码中,正数的反码与原码相同,负数反码是该数的原码除符号位外的各位取反。例如,+5的二进制反码为00000101,-5的二进制反码为11111010。 使用补码可以在计算机中进行正数与负数减运算,减少了法器和减法器的复杂度。而使用反码则可以将减法运算转化为法运算,简化了计算机的设计。此外,二进制补码还可以解决原码的溢出问题,使计算更方便。因此,二进制补码是计算机中广泛使用的表示整数的方法。 ### 回答3: 原码是二进制表示法中最简单的一种,直接用二进制位表示数字的符号和大小。其中最高位表示符号,0表示正数,1表示负数。例如,+3的原码是00000011,-3的原码是10000011。 反码是为了解决原码中正负数时存在运算问题而引入的一种表示法。正数的反码与原码相同,负数反码则是在原码的基础上,符号位不,其余位按位取反。例如,+3的反码仍为00000011,-3的反码为11111100。 补码则是为了解决反码中“0”有两种表示法的问题,进一步改进而来的一种表示法。正数的补码与原码相同,负数的补码则是在反码的基础上,对其末位1。例如,+3的补码仍为00000011,-3的补码为11111101。 补码的引入使得计算机在进行减法运算时更方便和高效,因为正负数减可以统一处理。此外,补码还具有唯一性,相同补码表示的是相同的数值,简化了数字的表示与运算。 总结来说,二进制原码表示了数字的符号和大小,反码是为了解决正负数存在的问题,补码是为了解决反码中“0”的两种表示法问题。补码的引入使得计算机能够更有效地进行二进制数的运算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值