C语言中的反码怎么转换成补码?例如为什么反码是11110101而补码是11110110,求详细解释

如题所述

其实复杂理解是很难的,我只知道这么弄的原因是计算机只能运算加法。(至少刚开始发明的时候是这样的),其他运算都是通过加法的基础实践的。 为了操作减法不需要借位,所采用的技巧。。。。。。。可以百度,《编码的奥秘》。。。。。。



所有的数据, 什么视频, 图片, 音频, 汉字, 字母, 数字, 统统都是以二进制的形式表示的。

为了区分方便程序识别,在每个层次上都有相应的规范,

其中 正负数的表示之间的区分就是, 负数的表示方法是在正数的基础上 反码, 再加上1;就是对应的负数了,
比如3的整数表示就是原码00000011 负数就是反码11111100 加1,11111101就是-3在计算机中的存在形式;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-05-13

计算机中,只有加法器,没有减法器。

负数,必须转换成正数(即补码),用加法来计算。

你看十进制:

  24 - 1 = 23

  24 + 99 = (1)  23

舍弃进位,+99 就可以代替-1。

+99 就称为-1 的补数。

负数的补数= 负数+10^n, n 是位数。

二进制的补码,也是这样计算出来的。

负数的补码= 负数+2^n, n 是位数。

这思路,与三角函数,也是雷同的。

三角函数的周期是 2π。

负的角度如-π/2,也可以换算成正角度 +3π/2。

算法是:负角度 + 周期 2π。

在计算机中,2^n 也就是计数周期。

-----------------------

补码,与原码反码符号位,并无关系。

取反加一的理论,是不存在的。

在计算机系统中,数值,一律采用补码表示和存储。

计算机中,并没有原码和反码,所以,就不必关心它们了。

第2个回答  2014-11-06
正数反码的补码还是原码,负数反码的补码是(反码加1) 例如 -9的原码是10001001 反码是11110110(原码按位取反) 则补码是11110111追问

把例子解释一下

追答

直接加啊,二进制加法 11110101+1=11110110

本回答被网友采纳
第3个回答  2014-11-06
补码等于反码加一追问

怎么加的一,把我举的例子解释一下

追答

已经解决了?

第4个回答  2014-11-06
哈…不会…追问

。。。

追答

C语言从不听…

相似回答