c语言:原码,反码 补码?

-10 -6
原码:101010 原码:100110
反码:110101 反码:111001
补码:110110 补码:111010
那我要算(-10)+(-6)的和
计算机内部是怎么样计算的?
用补码加补码似乎不管这俩数几都和这俩数的和很相似
即 (-10)补+(-6)补=10110+11010=110000
晕半天了 请达人给解~~

1)原码表示
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。
例如,X1=
+1010110
X2=
一1001010
其原码记作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原码表示法中,对0有两种表示形式:
[+0]原=00000000
[-0]
原=10000000
2)补码表示
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]补=01010110

[X1]原=[X1]补=01010110
[X2]
原=
11001010
[X2]
补=10110101+1=10110110
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]补=01010110

[X1]原=[X1]补=01010110
[X2]
原=
11001010
[X2]
补=10110101+1=10110110
(3)反码表示法
机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。
例如:X1=
+1010110
X2=
一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。
例1.
已知[X]原=10011010,求[X]补。
分析如下:
由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]补=11100110
例2.
已知[X]补=11100110,求[X]原。
分析如下:
对于机器数为正数,则[X]原=[X]补
对于机器数为负数,则有[X]原=[[X]补]补
现给定的为负数,故有:
[X]补=11100110
[[X]补]反=10011001+1
[[X]补]补=10011010=[X]原+1
[[X]补]补=10011010=[X]原
总结一下,原码(为负时,正时都不变)全部取反即得到反码,反码加
"1"就得到补码了,就是这么简单。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-31
一、原码
求原码:x≥0,则符号位为0,其余照抄;
x≤0,则符号位为1,其余照抄。
【例1】x=+1001001
[x]原
=
01001001
【例2】x=-1001001
[x]原
=
11001001
二、反码
求反码:若x≥0,符号位为0,其余照抄;
若x≤0,符号位为1,其余按位取反。
【例3】x=+1001001
[x]反
=
01001001
【例4】x=-1001001
[x]反
=
10110110
三、补码
求补码:若x≥0,符号位为0,其余照抄;
若x≤0,符号位为1,其余取反后,最低位加1。
【例5】x=+1001001
[x]补
=
01001001
【例6】x=-1001001
[x]补
=
10110111
第2个回答  2007-04-08
比如说4个数对应的是8421
那么10对应的就应该是1010 第一个1对应的是8第二个1对应的是2加起来8+2=10 因为是-10所以在前面加1(11010),假如是10那么就应该在前面家0,同理-6就应该是(10110)
最后(-10)+(-6)=11010+10110=110000
因为是二进制数每逢2进1,假若还不明白请站内联系
第3个回答  2019-07-16
C语言源码就是C语言编辑好的原始程序,没有改动过的。
补骂就是后续程序出现各种情况,需要增加或者修改内容,再次改动的。
第4个回答  2022-01-20

-10-6 = -16。

在计算机中,是用补码计算的。

用八位计算如下:

 -10 的补码=1111 0110

   -6 的补码=1111 1010

----相加---------

  (进位1) 1111 0000 = -16 的补码

相似回答