负数的补码如何计算?举个例子!

作者&投稿:周逄 (若有异议请与网页底部的电邮联系)
负数的补码如何计算?举个例子!~

正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
移码:00101 //原数+10000

首先,负数的补码=其正数的源码的反码+1。然后,负数的源码就是先减1在取反,最高位为1
eg:(-125)源=11111101B, (-125)反=10000010B, (-125)补=10000011B,反过来求-125的源码就是用-125的补码10000011先减1,得到10000010,在取反01111101,最高位改成1,11111101,懂了吗?祝考试周愉快~

就比如-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),其余位表示数值的大小。





正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
移码:00101 //原数+10000

正数,本身就是补码。

负数,就用它的正数,减一取反,即可得到补码。

如:+9 的二进制是:0000 1001。

下面求-9 补码:

先减一:0000 1001 - 1 = 0000 1000;

再取反:1111 0111。

所以有:-9 补码 = 1111 0111。

这不就完了吗!

简不简单? 意不意外?

原码反码符号位,讨论这些垃圾干嘛?

这些垃圾,只是那些人用来骗吃骗喝的!



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

在计算机中,原码和反码,都是不存在的。

所以,求补码,也不必使用它们。

 

补码,是由一系列二进制码组成的。

实用的有 8 位或 16 位。高档的还有 32、64 位。

补码中的每一位,都对应一位十进制数。

要注意:最高位所对应的数值,是负数。

那么,八位的补码,各个位的数值,就是:

  128、64、32、16、8、4、2、1。

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

如果,有一个补码是:1011 1001。

它代表的数值,就是:-128 + 32 + 16 + 8 + 1 = -71。

倘若首位是 0,即为:0011 1001。

求数值,就更简单了:32 + 16 + 8 + 1 = +57。

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

掌握了上述规律,由数值,再求补码,也就很简单了。

例如,求-125 的八位补码。

  这是负数,首位一定是 1,代表了数值-128。

  与-125 相比较,还应该有个 3。

  用七位数值位表示 3,就是:000 0011。

综合在一起,-125 的补码,就是:1000 0011。

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

求补码、求数值,都是很简单的事。

并不需要拐到“原码反码取反加一符号位不变”去。

老外数学不好,脑子不好用,才会弄出哪些个骚操作!





负数的补码应该是反码加1,比如说-1的补码应该是

-0000 0001 取反得到-1111 1110 然后再加1得到-1111 1111 即为它的补码.


补码的基本运算
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)[+1] = [00000001]原 = [00000001]反 = [00000001]补 [-1] = [10000001]原 = [11111110]反 = [11111111]补 对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算...

计算机原码反码补码怎么算
计算机中,并没有原码和反码,只是使用补码,代表正负数。使用补码的意义:可以把减法或负数,转换为加法运算。从而简化计算机的硬件。--- 比如钟表,时针转一圈,周期是 12 小时。倒拨 3 小时,可以用正拨 9 小时代替。9,就称为-3 的补数。计算方法:12-3 = 9。对于分针,倒拨 X 分,...

C语言中一个数补码和原码是如何进行计算的?
就是1)从下一个开始取反 如1001 1100的补码就是0110 0100,至于原码用10进制数依次除以2安顺序保留余数,知道商为零为止,那么最后依次的余数就是原码的最高位,倒数第2个余数就是原码的次高为,这样依次,知道第一个余数就是原码的最低位了 ...

如何计算正数的原码,补码,反码,补码,反码?
最高位如果是0的话,不变,正数的补码就是他的原码。乘法:首先检查操作数的符号以确定结果的符号。然后使用与无符号二进制数相同的算法进行乘法。如果两个操作数的符号不同,符号位将被单独处理,增加一个额外的步骤来反转结果的符号位。除法:操作数的符号也被检查以确定结果的符号。然后使用与无符号...

正数和负数的补码是怎么计算的?
等效值,在计算机专业,就重新命名:补码。对于 8 位 2 进制数,计数周期就是:2^8 = 256。-1 的补码:-1 + 256 = 255 = 1111 1111 (二进制)。。。-128 的补码: 128 = 1000 0000。零和正数,并不存在“等效的正数”。所以,零和正数,根本就不存在补码。--- 用补码(正数)代替...

已知一个数的原码,如何求出其补码?
已知一个数的补码,可以通过以下步骤计算出该数的原码:1,将补码转换为原码:原码 = 补码 + 符号位 * 2^n 其中,符号位为最高位(用符号位来表示正负号),数值位从最低位开始计算。2,将得到的表达式代入补码转换为原码的公式中,符号位为最高位(用符号位来表示正负号),数值位从最低位开始...

如何求补码
补码的优点:补码系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补码来表示,因此只要有加法电路和补码电路即可以完成各种有符号数加法和减法,在电路设计上相当方便。另外,补码系统...

计算机中的 原码和补码怎么求 他们之间怎么计算?
换算根据他们各自的定义进行。所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。例如:(1) 原码:在数值前直接加一符号位的表示法。例如: 符号位 数值位 [+7]原= 0...

计算机中的补码是如何表示数字的呢?
【答案】:8位字长的计算机表示机器数,每个机器数是8位,最高位为符号位,后7位为数值位。因此[+18]原=[+18]反=[+18]补=00010010[-18]原=10010010[-18]反=11101101[-18]补=11101110[+31]原=[+31]反=[+31]补=00011111[-31]原=10011111[-31]反=11100000[-31]补=11100001[+127]原=...

正数的补码等于原码是如何算出来的
这是规定。补码是为负数想出来的办法,目的是减法可以用加补码的方法实现,补码可用反码加1得来,于是又有了负数的反码。计算机里有硬件“加法器”,有了补码,减法也可以用加法器做了,计算机里运算速度硬件远快于软件,这就是反码,补码和原码多样化的原因。

云岩区19619075447: 负数的补码如何计算?举个例子! -
淡怨泽通: 正数的原码,补码,反码都相同,都等于它本身 负数的补码是:符号位为1,其余各位求反,末位加1 反码是:符号位为1,其余各位求反,但末位不加1 也就是说,反码末位加上1就是补码 -1011 原码:11011 反码:10100 //负数时,反码为原码取反 补码:10101 //负数时,补码为原码取反+1 移码:00101 //原数+10000

云岩区19619075447: 负数的补码怎么求的就比如 - 9 补码是11110111,请问怎么算的 -
淡怨泽通:[答案] 9的源码为00001001,如果是负数的话,补码为最高位置1 ,其余取反也就是11110110,然后在最低位加1即可即11110111

云岩区19619075447: 算出下列的补码求过程顺便说下负数的补码怎么运算正46 负78 正112 负51 -
淡怨泽通:[答案] 【注】因为题目没有指定字长,我谨以8位字长为例,16位、32位同理,补0就好了. (1)求+46的补码: ①进制转换:+46的二进制形式为+101110 ②转换成原码:10101110 ③因为 正数的补码与起原码相同, 所以 +46的补码为:10101110. (2)求-...

云岩区19619075447: 一个负数如何用补码表示,举例说明下! -
淡怨泽通: 负数的补码等于反码加1,反码等于原码按位取反(符号位不变) 首先得到负数的绝对值的原码,再把最高位变成1,这就是负数的原码 比如: -37 (37的二进制是100101,换成八位是 00100101,再把符号位变成1,即10100101) 原码:10100101 反码:11011010 (在原码的基本上每一位都取反,1变成0,0变成1,最高位是符号位不变) 补码:11011011(在反码基本上加上1,注意进位操作) 正数的原码反码补码一致,都是等于原码

云岩区19619075447: 如何用负数的补码来求原码,求例子 -
淡怨泽通: 首先,负数的补码=其正数的源码的反码+1.然后,负数的源码就是先减1在取反,最高位为1 eg:(-125)源=11111101B, (-125)反=10000010B, (-125)补=10000011B,反过来求-125的源码就是用-125的补码10000011先减1,得到10000010,在取反01111101,最高位改成1,11111101,懂了吗?祝考试周愉快~

云岩区19619075447: 原码、反码、补码,计算机中负数的表示? -
淡怨泽通:[答案] 一:对于正数,原码和反码,补码都是一样的,都是正数本身. 对于负数,原码是符号位为1,数值部分取X绝对值的二进制. 反码是符号位为1,其它位是原码取反. 补码是符号位为1,其它位是原码取反,未位加1. 也就是说,负数的补码是其反码未位...

云岩区19619075447: 怎么用二进制求负数的补码? -
淡怨泽通: 负数的补码的方法如下: 1、负数在计算机中以补码的形式存储,正数在计算机中以原码的形式存储.负数如何求补码?分为如下步骤:1、首先求出负数的原码,如-8的原码为 1000 1000,2、通过原码求出它的反码,负数的反码就是 除符号为...

云岩区19619075447: 算出下列的补码求过程顺便说下负数的补码怎么运算 -
淡怨泽通: 【注】因为题目没有指定字长,我谨以8位字长为例,16位、32位同理,补0就好了.(1)求+46的补码: ①进制转换:+46的二进制形式为+101110 ②转换成原码:10101110 ③因为 正数的补码与起原码相同,所以 +46的补码为:10101110. ...

云岩区19619075447: 负小数补码计算? -
淡怨泽通: C 的高位为 1,表示结果为负数,原码为 01010110(减 1 取反),恢复小数点(小数点左移 7 位), 符号为 -0.101011. 运算过程中没有8位进位,所以没有溢出. 用decimal验证C的小数为-0.671875(0.5 0.125 0.03125 为负数时补码为原码(1.1010)的反码,为负数时补码为原码的反码 +1(1.1011),小数没有码移.用9.52到数的话,会有很多小数位.这里我们以-9.625为例.

云岩区19619075447: 求大神指教,一负数减正数的补码运算详解用 - 64减去50补码运算,字长为8位 - 64的补码是11000000, - 50补码是11001110,用11000000加上11001110就应该... -
淡怨泽通:[答案] 以下采用8位二进制编码:[-64]原=101000000[-64]反=110111111[-64]补=111000000[-50]原=100110010[-50]反=111001101[-50]补=111001110(-64)-(50)=(-64)+(-50)[-64]补=111000000[-50]补=111001110 (+[ X ]补...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网