永发信息网

在C语言中,“原码,反码和补码”有什么不同啊?

答案:3  悬赏:80  手机版
解决时间 2021-01-28 08:29
  • 提问者网友:回忆在搜索
  • 2021-01-28 01:19
可以举例详细说明吗?谢谢了!
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-01-28 02:52
正数的原码,反码和补码都一样的,而负数就不一样了!计算机为了让所有的数都是进行同一个加法运算,就有了原码,反码和补码的产生!负数的补码等于它的绝对值的原码取反后得到这个负数的反码,而在反码的基础上加1就变成了这个负数的补码了!下面我用8位的来举例(最高位是符号位):
45 原码:00101101 反码:00101101 补码:00101101
-45 原码:10101101 反码:11010010(原码取反:符号位不变,而其它0变1,1变0) 补码:11010011(反码:11010010 +1=11010011)
---------------------------------------------
明白了没有?找这方面的书看看吧!
全部回答
  • 1楼网友:上分大魔王
  • 2021-01-28 04:25
(字长为8位) 整数X的原码指:其数符位是0表示正,1表示负,其数值部分就是X绝对值得二进制表示。 如:【7】原=0000 01)原码表示 原码表示法是机器数的一种简单的表示法。其符号位用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]反=
  • 2楼网友:等灯
  • 2021-01-28 04:15
计算机中的整数类都是用补码来存储的。 而c语言中不需要关心原反补码!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯