百度
360搜索
搜狗搜索

补码运算结果是补码还是原码,补码+补码算出来是什么码详细介绍

本文目录一览: 使用补码进行加减法运算 值是补码还是原码

使用补码进行加减法运算,结果,仍旧是补码。
如果值的符号位为正0,那么补码就是原码,直接求值,加上+号就可以
如果值的符号位为负1,那么补码需要再求补码,然后求值,再加上-号就可以

用补码算完两个数的和以后,是不是还要再求一次补才能得到正确答案。不能直接用原码算吗?(-25)补=?

补码的补码就是原码!
带符号数中只有负数的原码反码和补码是不一样的,正数的这些都是一样的,涉及码制转换!
原码求补码是取反加1
补码求原码还是是取反加1(符号位除外)
用补码算完两个数的和以后,需要再求一次补。一般不用原码计算。
-25写成二进制是111001,反码是100110,补码是100111
两个补码的运算结果,仍然是补码。
如果你计算出来了补码,这就是正确答案。
还要再求一次补?
那就不知道是什么东西了。
你如果需要真值,那就是另外的问题了。
两类不同的问题,不要混为一谈。
用原码计算? 当然可以!
不过,使用原码的计算过程,就比较麻烦了。
所以,一般都不用原码计算。

二进制补码运算

数据在内存中以补码形式存储,运算也以补码形式运算,运算结果也是补码。
最高位是符号位,正数时是0,负数时是1.以int类型2字节,16位二进制来算。
9(正数),补码=原码,即 00000000 00001001
-7(负数),补码 = (256 - 负数绝对值,注意符号位补1),即256-7=249,
249为 11111001,所以-7补码为 11111111 11111001
相加如下(缝2进1,结果写0):
------00000000 00001001
--加--11111111 11111001
--------------------------
--得--00000000 00000010
所以结果是 00000000 00000010 ,化为原码,因为最高位是0,代表正数,正数有 原码 = 补码,所以原码为 00000000 00000010 ,化为10进制得 2 .
二进制补码运算:9 + (-7) = ?
正数的补码,是其本身。
负数的补码,就用它的正数,减一取反,即可得到补码。
+9 的补码: 0000 1001。
-7 的补码: 1111 1001。
相加,得:(1) 0000 0010。
最高位是 0,这就是正数的补码。
而正数的补码是其本身。所以,这补码的真值就是+2。
结果:9 + (-7) = +2。
假设字长八位,计算过程如下:
  [+9]补 = 0000 1001
 [-7]补 = 1111 1001
--相加---------
  得:(1) 0000 0010 = [+2]补
正负数与补码的转换,自己去做吧。
[-43]原=10101011
[-43]反=11010100
[-43]补=11010101
一分钟了解计算机与二进制

补码+补码算出来是什么码

补码+补码,算出来的,还是补码。
还是补码
凑字数.............
补码+补码=原码
正数与正数相加,负数与负数相加,其实都可以通过加法器直接相加。原码,反码,补码的产生过程,就是为了解决,计算机做减法和引入符号位(正号和负号)的问题。
补码:最高位为符号位,0表示正数,1表示负数。
正数的补码等于本身,负数的补码等于反码+1:
补码的计算原则为:
1、 对于无符号数以及有符号数中的正数,其补码就是原码本身;
2、 对于有符号数中的负数,其补码为真值绝对值的反码加一,其中反码为原码按位取反。

为什么 补码的补码是原码

举个栗子:在12小时制的时钟计数系统中,5和7互为原补码,设原码为5,则对其进行补码运算(即求5的补码)由上可知结果为7。然后再对7进行补码运算(即求7的补码)显而易见其结果为5。这就是"补码的补码是原码"这一定理比较直观的验证。因为二进制计数系统和时钟计数系统一样存在"溢出现象",所以"补码的补码是原码"这个定理在二进制的原补码运算中通用适用。
不是的。
比如,-128 的八位补码是1000 0000。
你无论怎么做,都不是-128 的原码。
------------------
补码的补码? 说这话,就是混!
应该说:再,次,取反加一。
 这是针对带符号位的二进制数。
  正数的补码和原码是一样的,所以正数的补码的补码都是一样的。如果是负数的话,注意第一个数字表示符号,1表示负值,0表示正值,举个例子:(-2)它的源码是10000010它的补码是反码加1,即(反码)11111101+1=11111110(这是它的补码),补码的补码是 (补码的反码)10000001+1=10000010(-2)所以,一个二进制数补码的补码就是其原码。

补码运算的结果是正数时得到的结果是什么?

补码运算的结果是正数?
这怎么可能!
补码运算的结果,不可能是数!
补码运算的结果,必然还是补码。
有可能是正数的补码,也可能是负数的补码,还有可能是零的补码。
补码。
补码的表示方法是:
正数的补码就是其本身。
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。
[+1] = [00000001]原 = [00000001]反 = [00000001]补。
[-1] = [10000001]原 = [11111110]反 = [11111111]补。
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值。
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是10000111。

补码运算的结果也是补码吗?要得到结果是不是要先转换为原码?

C语言中的原、反、补码

int,
字长为2
字节共16位二进制数,
数的范围是-32768~32767
-32768的二进制是11111111
11111111负数最高位为1.
32767的二进制是01111111
11111111
正数最高位为0.
正数的原码和补码一样。
负数的补码是原码取反加1.

32768=01111111
11111111+1
=10000000
00000000
-32768=10000000
00000000
取反011111111
11111111
+1
10000000
00000000
结果和你书上看到的一样,说明书是对的,哈哈。
c语言中,所有的整型数据实际存储的都是补码。
要计算补码,先要知道原码的概念,原码也就是一个10进制数的二进制表达方式,比如100的原码为1100100。
补码的计算原则为:
1
对于无符号数以及有符号数中的正数,其补码就是原码本身;
2
对于有符号数中的负数,其补码为真值绝对值的反码加一,其中反码为原码按位取反。
针对负数举例说明:
-100在用char型(8位)表示时,其补码可以按照如下流程计算。
1、
100的原码为01100100
2、按位取反,得到反码为10011011
3、将反码加1,
即10011011+1
=
10011100。
于是-100的补码表示就是10011100,也就是0x9c(16进制)。

电脑中原码和补码是什么关系?

电脑中原码和补码是什么关系?
在电脑中,数值,一律采用补码表示和存储。
电脑中,根本就没有原码和反码。
在电脑中,它们根本就见不着面,你说它们能有什么关系?
原码和反码,只是在纸上,随便写一写而已。
原码,反码,补码是机器存储一个具体数字的编码方式。原码跟补码之间的关系是:正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。
在计算机系统中,数值一律用补码来表示和存储。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+
10000001=10000010,换算成十进制为-2。
扩展资料
原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。一个字长为n的机器数能表示不同的数字的个数是固定的2^n个,n=8时2^n=256;
用来表示有符号数,数的范围就是 -2^(n-1) ~ 2^(n-1)-1,n=8时,这个范围就是 -128 ~ +127。但是在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255.没有符号位的数,称为无符号数。
参考资料来源:百度百科-原码
参考资料来源:百度百科-补码

阅读更多 >>>  计算机原码反码补码

网站数据信息

"补码运算结果是补码还是原码,补码+补码算出来是什么码"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:补码运算结果是补码还是原码,补码+补码算出来是什么码的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!