为什么二进制补码等于源码(补码必须是二进制码)
本文目录一览:
电脑中原码和补码是什么关系?
原码,反码,补码是机器存储一个具体数字的编码方式。原码跟补码之间的关系是:正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加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.没有符号位的数,称为无符号数。
参考资料来源:百度百科-原码
参考资料来源:百度百科-补码
原码与补码的转换
1、首先要知道,换算规则:原码转换为反码:符号位不变,数值位分别“按位取反” 。
2、接着反码转换为原码也是一样,但规则却有不同之处:符号位不变,数值位分别“按位取反”。
3、然后就是,原码转换为补码的规则:符号位不变,数值位按位取反,末位再加1。
4、最后补码转换为原码:符号位不变,数值位按位取反,末位再加1,即补码的补码等于原码。
5、而求补(变补)的换算规则与之前有所差别:符号位和数值位都取反,末位再加1。
补码如何变成原码
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为 “1”;其余7位1111001取反后为0000110;再加1,所以是10000111。
扩展资料:
总结:
已知一个数的补码,求原码的操作其实就是对该补码再求补码。
补码转换为原码:符号位不变,数值位按位取反,末位再加1。即补码的补码等于原码。
正整数的原码、反码和补码是一样的,即看到符号位(第一位)是0,就可以照着写出其他两种码。所以已知正数的补码,求其原码,两个数是一样的。
参考资料:百度百科——补码
为什么 补码的补码是原码
这是针对带符号位的二进制数。
正数的补码和原码是一样的,所以正数的补码的补码都是一样的。如果是负数的话,注意第一个数字表示符号,1表示负值,0表示正值,举个例子:(-2)它的源码是10000010它的补码是反码加1,即(反码)11111101+1=11111110(这是它的补码),补码的补码是 (补码的反码)10000001+1=10000010(-2)所以,一个二进制数补码的补码就是其原码。
一个二进制数补码的补码就是其原码为啥啊!
正数的原码、补码都一样,所以一个二进制数补码的补码就是其原码。
在计算机内,定点数有3种表示法:原码、反码和补码
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
扩展资料:
补码可以简化计算机的设计。
对于人脑而言,做加减题时,第一反应就是根据符号位,来选择对真值区域的加减。但是计算机而言,像加减乘除这类最最基础也是应用得最频繁的基本运算,在物理逻辑的设计上一定要设计的尽量简单。
如果让计算机也先判断符号位再分别做加或者减的运算的话,会使得计算机的电路设计变得较为复杂。人类发明了将符号位也参与进运算的方法来。对于计算机而言,不管是加法还是减法,都统一用加法来做运算,可以使得计算机的设计变得更加的简单。
参考资料来源:百度百科-补码
二进制补码是什么意思?
二进制补码简介:
计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的补码了。
补码的设计目的:
⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.
⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。
小数和分数的补码:
1.十进制分数补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的补码形式。
37/64=100101B/2^6=0.100101B
-51/128=110011B/2^7=0.0110011B
2.十进制小数的补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的补码形式。
0.375=0.011B
0.5625=0.1001B
3.将二进制小数对应的补码求出
[37/64]补码=[0.100101B]补码=0.1001010B
[-51/128]补码=[0.0110011B]补码=1.1001101B
[0.375]补码=[0.011B]补码=0.0110000B
[0.5625]补码=[0.1001B]补码=0.1001000B