百度
360搜索
搜狗搜索

补码和补码运算,1补码和运算是什么运算啊……怎么算?详细介绍

本文目录一览: 补码 补码算出来是什么码

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

什么是补码,其补码如何计算

补码,实际上,就是一个“代替负数”的正数。
使用了补码之后,计算机中,就没有负数了。
  同时,也就没有减法运算了。
计算机,只要配置一个加法器,就能横行天下了。
  这就是补码的作用。
---------------------
补码(一个正数),怎么就能代替负数呢?
想一想周期性的规律吧。
2 位 10 进制数(0~99),计数周期就是 10^2=100。
可有: 25 - 1 = 24
    25 + 99 = (一百) 24
你舍弃进位的 1,只保留 2 位数, 99 就能代替-1!
 而且,加法,也能代替减法运算!
同样, 98 也可以代替-2。
。。。
这些正数,就称为“负数的补数”。
求补数的公式,显然就是:
  补数=负数+10^n
式中:n 是补数的位数。
   10^n,是 n 位 10 进制数的周期。
这公式,在三角函数中,也有雷同的表现。
三角函数,是以 2π 为周期的。
任何负角度,加上周期,就可以转换为正角度。
如:x =-π/2,与其等效的正角度,即为:
  x =-π/2 2π = 3π/2
-------------------
计算机用二进制,补数,就称为:补码。
求负数的补码,公式是:
  补码 = 负数 + 2^n
  2^n,是 n 位 2 进制数的计数周期。
对于 8 位 2 进制数,周期就是 2^8 = 256。
那么,
 -1 的补码就是 255 = 1111 1111 (二进制)。
 -2 的补码就是 254 = 1111 1110 (二进制)。
。。。
-128 的补码就是 128 = 1000 0000 (二进制)。
正数,不用转换,也不许做任何转换,必须直接去参加算。
所以,零和正数,并没有补码。
-------------------
求补码,不需要“符号位原码反码取反加一符号位不变”。
那一大堆步骤,并没有什么数学理论依据。
数学不好的老外,弄不懂周期,才用那些骚操作。
而且,原码反码,在计算机中,根本就不用!
忽悠大家学了一大堆,一丁点用处也没有的。
就比如-9补码是11110111。
9的源码为00001001,如果是负数的话,补码为最高位置1,其余取反也就是11110110,然后在最低位加1即可即11110111。
计算机中的负数是以其补码形式存在的补码=原码取反 1。
一个字节有8位可以表示的数值范围在-128到 127。用二进制表示也就是10000000-01111111(注意:最高位表示符号)。最高位是1的都是负数最高位是0的都是正数。
扩展资料:
补码乘法
补码的乘法不具备【X*Y】补=【X】补×【Y】补的性质。但是【X*Y】补==【X】补×Y,所得结果再取补码,如x=101,y=011,[x*y]补=-[(-101)*011]=-[011*011]=-01001=10111。
其中,若【Y】补=y31y30……y0,则Y=-y31*2^31 y30*2^30 …… y0*2^0
原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示: 0和-0),其余位表示数值的大小。

补码怎么算

补码的算法如下:
一、补码加法[X Y]补 = [X]补 [Y]补例:X= 0110011,Y=-0101001,求[X Y]补[X]补=00110011 [Y]补=11010111[X Y]补 = [X]补 [Y]补 = 00110011 11010111=00001010注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是100001010,而是00001010。
二、补码减法[X-Y]补 = [X]补 - [Y]补 = [X]补 [-Y]补其中[-Y]补称为负补,求负补的方法是:负数的绝对值的原码所有位按位取反;然后整个数加1。例:1 (-1)[十进制]1的原码00000001 转换成补码:00000001-1的原码10000001 转换成补码:111111111 (-1)=000000001 11111111=0000000000000000转换成十进制为00=0所以运算正确。
三、补码乘法设被乘数【X】补=X0.X1X2……Xn-1,乘数【Y】补=Y0.Y1Y2……Yn-1。【X*Y】补=【X】补×【Y】补,即乘数(被乘数)相乘的补码等于补码的相乘。
补码的含义:
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理 。

求详解 补码,补码运算 !

正数的补码为其本身,负数的补码为其绝对值取反后加1,如为单字节数,补码的表示范围是: -128~ 127,109的补码还是01101101
正数的补码,是其本身。
负数的补码,就用它的正数,减一取反,即可得到补码。
如,已知:+9 补码是:0000 1001。
下面求-9 补码:
先减一:0000 1001 - 1 = 0000 1000;
再取反:1111 0111。
所以有:-9 补码 = 1111 0111。
这不就完了吗?
求解补码的步骤:
(1) 求解二进制格式,得原码;
(2) 如果为正数,补码=原码,如果是负数,继续下一步;
(3) 除符号位外,各位取反;
(4) 最低位加1,最终得到负数的补码。
假设机器字长为8(一个数的二进制格式共有8位)。
以9为例,9(= 8 1 = 2的3次方 2的0次方)的二进制格式为 000 1001,符号位为0(0表示正数,1
表示负数),它的原码为0 000 1001。
由于9是正数,它的补码等于它的原码,即0000 1001。
以109为例,它的二进制格式为110 1101,符号位为0,它的原码为0 110 1101,它的补码也就是
0110 1101。
以-9为例,
(1) 它的二进制格式为000 1001,符号位为1,它的原码为1000 1001。
(2) 由于-9是负数,继续下一步。
(3) 除符号位外,各位取反,得1111 0110(最高位是符号位,不取反)。
(4) 最低位加1,得1111 0111。
-9的补码为1111 0111。

补码怎么算

计算机中的计算,都是用补码进行的。
补码怎么算?
极其简单!
计算机中,只有加法器。
补码的计算,也只有一种:加法。
你记住:逢二进一,就行了。
补码的计算方法有二进制补码的计算和十进制补码的计算。
1、二进制补码的计算方法:
二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码、反码与补码三者的关系,掌握一定基础的人都知道一下规则:
(1)原码。
最高位为符号位,0表示正数,1表示负数。
例如:X=0b11(3),四比特表示原码=0011(3);
X=-0b11(-3),四比特表示原码=1011(11);
(2)反码。
最高位为符号位,0表示正数,1表示负数。正数的反码等于本身,负数的反码除符号位外,各位取反。
例如:X=0b11(3),四比特表示原码=0011(3),对应反码为=0011(3);
X=-0b11(-3),四比特表示原码=1011(11),对应反码为=1100(12);
(3)补码。
最高位为符号位,0表示正数,1表示负数。
正数的补码等于本身,负数的补码等于反码 1:
例如:X=0b11(3),四比特表示原码=0011(3),对应反码为=0011(3),补码为=0011(3);
X=-0b11(-3),四比特表示原码=1011(11),对应反码为=1100(12),补码为1101(13);
2、十进制补码的计算方法:
对于十进制数来说,通过前面的性质不难得到正十进制数补码等于其本身,对于负十进制数来说如果还按位进行运算就太麻烦了!为了讲明白,我们从补码的起因说起:
“反码加一”只是补码所具有的一个性质,不能被定义成补码。负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。这是补码设计的初衷,具体目标就是让1 (-1)=0,这利用原码是无法得到的:
0001(1) 1001(-1)=1010(-2)。
而在补码中:
0001(1补) 1111(-1补)=10000(1溢出)。
所以对于一个n位的负数-X,有如下关系:X补 (-X)补=100...0=2n。
所以假设寄存器是n位的,那么-X的补码,应该是2n?X的二进制编码。

阅读更多 >>>  为什么要用补码运算,计算机中使用补码运算的目的

补码的基本运算

补码的基本运算,就是加法。
你只要记住“逢二进一”即可。
补码相加后的结果:1010 1100 是答案的补码,要转化成原码,才是最终答案.
补码转原码方法同原码转补码,即符号位不变,其余按位取反后 1
1010 1100
求反:1101 0011
求补:1101 0100
即:-84
这里用到了补码的运算规则:[X Y]补=[X]补 [Y]补
求出[X]补 [Y]补后还要求一次补,才能得到答案X Y
扩展资料:
补码运算原理: 在计算机里,如果我们要计算5-3的值,我们既可以用5减去3,也可以用5加上13。
这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。我们从5这个位置往回退3个格,就完成了5-3这个计算。
我们也可以从5这个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走,走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到了2这个位置。
所以说,在我们这个计算机中,减3和加13是一样的。而3 13=16,我们说在模16的系统下,3和13是互补的。
这样,我们计算5-3就可以换成5 13。3的二进制表示为0011,5的二进制表示为0101。这样,0101-0011就可以表示为0101 (-0011)。
我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即16-3,也就是13)。10000-0011=1 1111-0011=1 (1111-0011)=1 1100=1101。
我们总说补码是“按位取反再加一”,看了上面这个式子相信大家就会明白了,其实就是把10000-0011换成了1111-0011再加1的形式。
然后,0101-0011就换成了0101 1101,它们计算出来的结果为10010。由于我们的计算机只有四个bit,所以结果为0010。即,在模16的计算机中,5-3=5 13=2。
参考资料:补码_百度百科

什么是补码运算?

补码运算的优点
1、用加法可以实现减法、乘法和除法运算,能简化计算机中运算器的内部结构。
2、可以让符号位作为数值直接参加运算,而最后仍然可以得到正确的结果符。
补码的本质:要将正数转成对应的负数,其实只要用0减去这个数就可以了。比如,-8其实就是0-8。
扩展资料
意义
1、解决了符号的表示的问题。
2、在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易。
3、补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。
总之,补码概念的引入和当时运算器设计的背景不无关系,从设计者角度,既要考虑表示的数的类型(小数、整数、实数和复数)、数值范围和精确度,又要考虑数据存储和处理所需要的硬件代价。因此,使用补码来表示机器数并得到广泛的应用。

1补码和运算是什么运算啊……怎么算?

你参考
设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。
(1)A=9/64, B=-13/32, 求A B;
(2)A=19/32,B=-17/128,求A-B;
(3)A=-3/16,B=9/32, 求A B;
(4)A=-87, B=53, 求A-B;
(5)A=115, B=-24, 求A B。
解:
(1)A=9/64=(0.001 0010)2 B= -13/32=(-0.011 0100)2 [A]补=0.001 0010 [B]补=1.100 1100
[A B]补= 0. 0 0 1 0 0 1 0 1. 1 0 0 1 1 0 0 1. 1 0 1 1 1 1 0 ——无溢出
A B=( -0.010 0010)2 = -17/64
(2)A=19/32=(0.100 1100)2 B= -17/128=(-0.001 0001)2 [A]补=0.100 1100 [B]补=1.110 1111 [-B]补=0.001 0001 [A-B]补= 0. 1 0 0 1 1 0 0 0. 0 0 1 0 0 0 1 0. 1 0 1 1 1 0 1 ——无溢出 A-B=(0.101 1101)2 = 93/128
(3)A= -3/16=(-0.001 1000)2 B=9/32=(0.010 0100)2 [A]补=1.110 1000 [B]补= 0.010 0100 [A B]补= 1. 1 1 0 1 0 0 0 0. 0 1 0 0 1 0 0 0. 0 0 0 1 1 0 0 —— 无溢出 A B=(0.000 1100)2 = 3/32
(4)A= -87=(-101 0111)2 B=53=(110 101)2 [A]补=1,010 1001 [B]补=0,011 0101 [-B]补=1,100 1011
[A-B]补= 1,0 1 0 1 0 0 1 1,1 0 0 1 0 1 1 0,1 1 1 0 1 0 0 —— 溢出 A-B=(-1,000 1100)2 = -140
(5)A=115=(111 0011)2 B= -24=(-11 000)2 [A]补=0,111 0011 [B]补=1,110 1000 [A B]补= 0,1 1 1 0 0 1 1 1,1 1 0 1 0 0 0 0,1 0 1 1 0 1 1——无溢出 A B=(101 1011)2 = 91
补码和运算,和普通二进制的运算方法,完全相同。

如何理解二进制原码,反码,补码,二进制补码运算

1.基础概念和计算方法
在探求为何机器要使用补码之前,
让我们先了解原码,
反码和补码的概念.对于一个数,
计算机要使用一定的编码方式进行存储.
原码,
反码,
补码是机器存储一个具体数字的编码方式.
http://blog.csdn.net/yinyhy/article/details/8732118
带符号数,有三种表示方法,即:原码、反码和补码。
但是,在计算机系统中,数值一律用【补码】来表示和存储。
所以,在计算机系统中,原码和反码,都是不存在的。
使用补码的意义:可以把减法或负数,转换为加法运算。
因此,就能简化计算机的硬件。
=====================
补码的概念,来自于:补数。
比如钟表,时针转一圈,周期是 12 小时。
那么,倒拨 3 小时,可以用正拨 9 小时代替。
9,就是-3 的补数。 计算方法: 9 = 12-3。
同理,分针倒拨 X 分,可以用正拨(60-X) 代替。
60,是分针的周期。
懂得三角函数的同学,都知道,三角函数的周期是 2π。
那么,在-π/2 和 3π/2 处的函数值是相同的,可互换。
算法是:  3π/2 = 2π - π/2。
------------
当你使用两位十进制数:0~99,周期就是 一百。
那么,减一,就可以用 99 代替。
  24-1 = 23
  24 99 = (1) 23
舍弃进位,这两种算法,功能就是相同的。
于是,99 就是 -1 的补数。
计算: 补数 = 周期 + 负数
对于其它负数,自己去求补数吧。
------------
计算机中使用二进制,补数,就改称为【补码】。
八位二进制是:0000 0000~1111 1111。
相当于十进制:0~255, 周期就是 256。
那么,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的补码,就是 1111 1111 = 255。
同理:-2 的补码,就是 1111 1110 = 254。
继续:-3 的补码,就是 1111 1101 = 253。
。。。
最后:-128 的补码,就是 1000 0000 = 128。
负数补码的计算公式:【 256 + 这个负数 】。
(式中的 256 = 2^8,是八位二进制的周期。)
正数,并不存在补码的问题。
所以,正数,并没有补码,可以直接运算。
(也有人乱说:正数本身就是补码。)
------------
求解算式: 7-3 = 4。
计算机中,并没有减法器,必须改用补码相加。
列竖式如下:
    7 的补码=0000 0111
   -3的补码=1111 1101
--相加-------------
   得:  (1) 0000 0100 = 4 的补码
舍弃进位,只保留八位,结果完全正确。
------------
借助于补码,可以简化计算机的硬件。
原码和反码,都没有这种功能。
所以,在计算机中,根本就没有原码和反码。
它们都是什么? 就不用关心了。

阅读更多 >>>  变形补码计算器,已知x,y,用变形补码计算x-y,同时指出结果是否溢出, x=11011,y=-11111 请教我

原码反码补码计算口诀

在计算机系统中,数值,一律采用补码表示和存储。
在计算机中,并没有原码和反码。
所以,原码和反码,与补码的转换,是毫无意义的。
你只要掌握“数值与补码的转换”,就够用了。
下表中,有这个转换的关系式:
一:原码,反码,补码与加减乘除运算
1:原码,反码与补码
正数的原码,反码,补码都一至.负数原码为绝对值二进制最高位取1, 负数的反码是原码(符号位除外)按位取反, 负数补码是反码 1如9的原码,反码,补码都是 00000000 00000000 00000000 00001001-9 原码 10000000 00000000 00000000 00001001-9的反码 11111111 11111111 11111111 11110110-9的补码 11111111 11111111 11111111 11110111
2:加法运算(与十进制类似例如6 9)
6的二进制 00000000 00000000 00000000 000001109的二进制 00000000 00000000 00000000 00001001相加结果 00000000 00000000 00000000 00001111 转成十进制就是15
3:减法运算,减法其实就是将减的数转成负数取补码相加,例如6-9
正6的二进制 00000000 00000000 00000000 00000110-9的二进制(补码) 11111111 11111111 11111111 11110111相加结果 11111111 11111111 11111111 11111101 // 这个数就是-3的二进制减1成反码 11111111...11111100 取反 10000000 ... 00000011 就是-3的原码喽
4:乘法运算(通过左移化解成加法运算)
十进制中例如140 * 121 = 140 *(1 * 10^0 2 * 10^1 1 * 10^2) = 140 2800 14000 = 16940,二进制也是一样,算9 * 6, 6的二进制110, 即 9 * (0 * 2^0 1 * 2^1 1 * 2^2)位数为0的都等于0,分解出来就是 0 (9 <<1) (9<<2)9的二进制1001 上面分解就等于 0 10010 100100 = 110110 十进制就是54
5:除法(与十进制除法相似从高往低)
如73 / 5 , 73二进制1001001 , 5二进制101从第一位 1 < 101 结果为0, 余1到第二位1 0 <101结果为0,余10到第三位 10 0 < 101 结果为0余100到第四位 100 1 > 101 结果为1, 余为1001-101 = 100,到第五位 100 0 > 101结果为1 余为1000 -101 = 11到第六位11 0 > 101 结果为1 余为110 -101 = 1到第七位 1 1 < 101 结果为0 余为 11合起来结果就是 0001110 ,余为11 转十进制就是14余3
二:常用位运算技巧
1:左移 << 与 右移>>
左移<

>各二进位全部右移若干位,对无符号数,高位补0, 有符号时会补上符号位,在JAVA中若无符号右移为>>>,符号位补0左移n位即二进制右边补了n个0, 相当乘于2^n, 右移n位相当除2^n, 最常见 除2的操作 num >> 1 , 取颜色值例如求int最小值,最大值

例如颠倒二进制位 00000000 00000000 10000000 10001110 变成01110001 00000001 00000000 00000000

2:~ 取反 0变1, 1变0

如上求最大值最小值,最大值取反即为最小值,最小值取反即为最大值10000000 最小值 取反 01111111即为最大值

3:&与运算 两个都为1时结果为1

网站数据信息

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