原码、反码、补码,计算机中负数的表示?

鸡娃儿2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
x_uy_u_n 共回答了19个问题 | 采纳率84.2%
一:对于正数,原码和反码,补码都是一样的,都是正数本身.
对于负数,原码是符号位为1,数值部分取X绝对值的二进制.
反码是符号位为1,其它位是原码取反.
补码是符号位为1,其它位是原码取反,未位加1.
也就是说,负数的补码是其反码未位加1.
移码就是将符号位取反的补码
二:在计算机中,实际上只有加法运算,减法运算也要转换为加法运算,
乘法转换为加法运算,除法转换为减法运算.
三:在计算机中,对任意一个带有符号的二进制,都是按其补码的形式进行运算和存储的.之所以是以补码方式进行处理,而不按原码和反码方式进行处理,是因为在对带有符号位的原码和反码进行运算时,计算机处理起来有问题.
而按补码方式,一方面使符号位能与有效值部分一起参加运算,从而简化运算规则.另一方面使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计
四:补码加、减运算公式
1):补码加法公式
[X+Y]补 = [X]补 + [Y]补
2):补码减法公式
[X-Y]补 = [X]补-[Y]补 = [X]补 + [-Y]补
已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1.
五:由补码求原码
已知一个数的补码,求原码的操作分两种情况:
1.如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码.
2.如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1;其余各位取反,然后再整个数加1.
以8位二进制操作为例,其运算取值范围是-128~127.
那么综上所述,我们可以得到-126-100,可以看成(-126)+(-100),目的是使减法操作变为加法
-126 -> 1111 1110 ->反 1000 0001 ->补 1000 0010
100 -> 0110 0100 -> 负数求补 1001 1011+1 -> 负补 1001 1100
做补码相加得 -126补+(-100) 补-> 1000 0010补 + 1001 1100补 ->1 0001 1110补 ->自然丢弃超出 0001 1110补
由补求原得到 0001 1110补 -> 0001 1110原
得到的结果为00011110,如果两个负数相加如果溢出,那么结果一定是正数,由此可知计算结果溢出.
1年前

相关推荐

比如43原码为00101011.0表示整.那么后7位怎么表示0101011的
心痛感觉61年前3
无名1000 共回答了16个问题 | 采纳率93.8%
0*2^6+1*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0=0+32+0+8+0+2+1=43
复数原码变成补码时符号位不变最低位加一假如有进位,符号位也要加1吗
新华海苏中办1年前1
ploiu 共回答了21个问题 | 采纳率85.7%
你说的这个问题只有1个数存在,以8位补码作说明,这个补码就是1000 0000,反码为1111 1111,原码+1,这里可以看到溢出了
因为这个1000 0000实际上是-128,但是8位的原码最多只有-127,原因嘛,0在原码里有2种表示这个你该知道的
所以补码比原码完善,具体你想了解清楚还是要看看补码的定义
计算机字长8位,分别绘出十进制数-19和-119的原码,反码,补码.
寸金1年前1
shisanee 共回答了22个问题 | 采纳率86.4%
10010011
11101100
11101101
11110111
10001000
10001001
关于原码,反码,补码的定义(要分正负数,有符号和无符号的),写得详细的,通俗易懂的还加分
门牙歪歪1年前1
zhuoguojun 共回答了12个问题 | 采纳率83.3%
原码、补码和反码
(1)原码表示法
原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示.设有一数为x,则原码表示可记作〔x〕原.
例如,X1= +1010110
X2= 一1001010
其原码记作:
〔X1〕原=[+1010110]原=01010110
〔X2〕原=[-1001010]原=11001010
原码表示数的范围与二进制位数有关.当用8位二进制来表示小数原码时,其表示范围:
最大值为0.1111111,其真值约为(0.99)10
最小值为1.1111111,其真值约为(一0.99)10
当用8位二进制来表示整数原码时,其表示范围:
最大值为01111111,其真值为(127)10
最小值为11111111,其真值为(-127)10
在原码表示法中,对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
补码表示数的范围与二进制位数有关.当采用8位二进制表示时,小数补码的表示范围:
最大为0.1111111,其真值为(0.99)10
最小为1.0000000,其真值为(一1)10
采用8位二进制表示时,整数补码的表示范围:
最大为01111111,其真值为(127)10
最小为10000000,其真值为(一128)10
在补码表示法中,0只有一种表示形式:
[+0]补=00000000
[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)
所以有[+0]补=[+0]补=00000000


(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]反=11100101
十) 1

[X]补=11100110

例2. 已知[X]补=11100110,求〔X〕原.
分析如下:
对于机器数为正数,则〔X〕原=〔X〕补
对于机器数为负数,则有〔X〕原=〔〔X〕补〕补
现给定的为负数,故有:
〔X〕补=11100110
〔〔X〕补〕反=10011001
十) 1

〔〔X〕补〕补=10011010=〔X〕原
或者说:
数在计算机中是以二进制形式表示的.
数分为有符号数和无符号数.
原码、反码、补码都是有符号定点数的表示方法.
一个有符号定点数的最高位为符号位,0是正,1是副.
以下都以8位整数为例,
原码就是这个数本身的二进制形式.
例如
0000001 就是+1
1000001 就是-1
正数的反码和补码都是和原码相同.
负数的反码是将其原码除符号位之外的各位求反
[-3]反=[10000011]反=11111100
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1.
[-3]补=[10000011]补=11111101
一个数和它的补码是可逆的.
为什么要设立补码呢?
第一是为了能让计算机执行减法:
[a-b]补=a补+(-b)补
第二个原因是为了统一正0和负0
正零:00000000
负零:10000000
这两个数其实都是0,但他们的原码却有不同的表示.
但是他们的补码是一样的,都是00000000
特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)
有人会问
10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个
又例:
1011
原码:01011
反码:01011 //正数时,反码=原码
补码:01011 //正数时,补码=原码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
0.1101
原码:0.1101
反码:0.1101 //正数时,反码=原码
补码:0.1101 //正数时,补码=原码
-0.1101
原码:1.1101
反码:1.0010 //负数时,反码为原码取反
补码:1.0011 //负数时,补码为原码取反+1
在计算机内,定点数有3种表示法:原码、反码和补码
所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小.
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外.
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1.
假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0.
现在想知道,-5在计算机中如何表示?
在计算机中,负数以其正值的补码形式表达.
什么叫补码呢?这得从原码,反码说起.

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码.
比如 00000000 00000000 00000000 00000101 是 5的 原码.
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码.
取反操作指:原为1,得0;原为0,得1.(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010.
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码.
反码是相互的,所以也可称:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码.
补码:反码加1称为补码.
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码.
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010.
那么,补码为:
11111111 11111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011.转换为十六进制:0xFFFFFFFB.

再举一例,我们来看整数-1在计算机中如何表示.
假设这也是一个int类型,那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110
3、得补码: 11111111 11111111 11111111 11111111

正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码

1100110011 原
1011001100 反 除符号位,按位取反
1011001101 补 除符号位,按位取反再加1

正数的原反补是一样的
在计算机中,数据是以补码的形式存储的:
在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;
其余n-1位为数值位,各位的值可为0或1.

当真值为正时:原码、反码、补码数值位完全相同;
当真值为负时: 原码的数值位保持原样,
反码的数值位是原码数值位的各位取反,
补码则是反码的最低位加一.
注意符号位不变.
如:若机器数是16位:
十进制数 17 的原码、反码与补码均为: 0000000000010001
十进制数-17 的原码、反码与补码分别为:1000000000010001、1111111111101110、1111111111101111
-127的16位二进制原码、反码、补码分别为
mrlinh1年前1
fdsadf 共回答了18个问题 | 采纳率83.3%
原码:0x807f
反码:0xff80
补码:0xff81
计算机导论:计算x= _ 0.110101,求其原码、反码、补码。
cctv3211年前2
zhy6501sourcing 共回答了22个问题 | 采纳率95.5%
2楼正解
正负数的原码、反码和补码的区别
ww的兵1年前1
jodyqi 共回答了20个问题 | 采纳率95%
正数的原码、补码、反码相同
负数的反码是逐位取反(符号位除外)
补码是反码+1
补码和原码的转化,感觉是书上不对呢,
补码和原码的转化,感觉是书上不对呢,
只讲题目部分,题中是很据推算,得到某个数的补码是10000111(这步是对的),那么我想问一下这个数的原码是不是11111000呢,这样的话这个数到底是120还是121啊 ,
qiaomuzhao1年前1
wy030226 共回答了13个问题 | 采纳率100%
原码是补码(不带符号位)的各位取反,然后加1,所以原码是11111001,符号位为1,这应该是个负数吧.
已知一个补码为11111001,它的原码如何求?
jksakl1年前1
qq2511314 共回答了18个问题 | 采纳率94.4%
[X]补=1111 1001
[X]反=1111 1000
[X]原=1000 0111
哪个 对啊?下列各叙述中,正确的是 A)正数二进制原码的补码是原码本身 B)所有的十进制数都能准确地转换为有限位二进制小
哪个 对啊?
下列各叙述中,正确的是
A)正数二进制原码的补码是原码本身
B)所有的十进制数都能准确地转换为有限位二进制小数
C)汉字的计算机机内码就是国标码
D)存储器具有记忆能力,其中的信息任何时候都不会丢失
碧海66661年前1
二把刀客 共回答了21个问题 | 采纳率100%
A)正数二进制原码的补码是原码本身
补码和原码的运算补码 反码 原码 直接怎么运算的?
wangtelry1年前1
纹枰无双 共回答了14个问题 | 采纳率92.9%
原码就是直接将一个数转换成2进制在加上符号位即可,反码是将原码的符号位不变,其余位全部变反,补码就是在反码的基础上加1
-32768的原码及补码是多少?怎么算的
哦哦211年前1
65588546 共回答了18个问题 | 采纳率88.9%
-32678原码为:11000,0000,0000,0000
求法:第一位“1”是符号位,表示负数,相反,正数的符号位是“0”.后面求它的二进制即可.
-32768补码为:11000,0000,0000,0000
求法:这里牵涉到一个反码的概念,反码便是除符号位外全部求反(即1->0,0->1).补码就是它的反码+1(不考虑符号位).11000,0000,0000,0000求反是10111,1111,1111,1111.故补码为(+1)11000,0000,0000,0000 .
补充:
我觉得你要知道的.
为何使用补码?因为对于所有的数(无论整形实形)在系统内部都只能有唯一的表示方式.可是0的原码和反码都不是唯一的(10000000或00000000),所以有了补码.补码直接参与二进制运算,减法变成加法运算.比原码和反码相对于机器而言更优.
好了,打完了.
祝你在以后的学习中一路顺风!
负数的补码到原码的运算?举个例子
小翟翟1年前1
女生飞儿 共回答了20个问题 | 采纳率85%
例如:
[x]补 =1000 0111b
-1 (-
-----------------------------
[x]反 =1000 0110b
[x]原 =1111 1001b
x = -111 1001b = -121d
一个字长为8位的整数的补码是11111001,则它的原码是().A.00000111 B.01111001 C.1111
一个字长为8位的整数的补码是11111001,则它的原码是().A.00000111 B.01111001 C.11111001 D.10000111
3353631年前1
容容爱飞 共回答了13个问题 | 采纳率84.6%
D
二进制数原码为11010,其补码为多急求!
素素_zhao1年前1
tezhaoji 共回答了14个问题 | 采纳率92.9%
11010=00011010
=>11010>0
正数的补码是其本身
所以就是11010
计算机,43的原码001011,为什么前面有两个0,符号位不是只有一个吗
血色毛巾1年前1
费费宝宝 共回答了20个问题 | 采纳率90%
43原码为00101011,0为整.
0*2^6+1*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0=0+32+0+8+0+2+1=43
原码反码补码正数5 原码0101反码 1010补码 0101负数-5原码 1101反码 0010补码 0011对吗
清醒了不好1年前1
zhangjin19850702 共回答了24个问题 | 采纳率91.7%
假设字长4位:

正数5
原码 0101 --对
反码 1010 --错,应为0101
补码 0101 --错,应为0101
负数-5
原码 1101 --对
反码 0010 --错,应为1010
补码 0011 --错,应为1011
某机字长8位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为
某机字长8位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为
候选答案是:A.2-9 B.2-8 C.1-2-7 D.2-7,不懂中间-是干嘛的.
是思念这种病1年前1
eirioee 共回答了20个问题 | 采纳率85%
A:2的-9次方
B:2的-8次方
C:1减2的-7次方
D:2的-7次方
根据选择题回答策略,就是不知道问题,只知道这4个结果,我就会选D.
因为C是最形式不同的,不选.而D是与C最类似的.所以选D.
而且,8位字长,去掉一个正负(数符),剩下7位,表示小数的话,就是2的-7次方是最小正数了.
以定点小数为例,用数轴和表格形式说明n+1位(含1位数符)小数原码、补码、反码、移码表示的范围
ouemu1年前1
lemonsquash 共回答了17个问题 | 采纳率82.4%
数轴和表格形式你就自己画吧
这里给你一个范围
原码:-1+2^-n
小数的原码,反码,补码ex:10.123 -10.779小数点在二进制中如何表示浮点与定点区别
tdmx462231年前1
phantom_bj 共回答了14个问题 | 采纳率92.9%
化为2进制是整数部分除以二知道变为1 小数部分乘以2直到变为1 ,符号位0表示正1表示负
正数:原码=补码
负数:
原码 = 正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1
反码 = 正数部分(去掉负号)的二进制值,按位取反
补码 = 反码 + 1
小数点依旧用点
定点数
所谓定点数是指小数点位置固定不变的数.在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数.
定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即最右边)的二进制位的后面,但小数点不单独占一个二进制位,如下所示:
0 1001010010001010001
数符位 数值位 小数位
因此,在一个定点整数中,数符位右边的所有二进制位数表示的是一个整数值.
定点小数:一个数的最高二进制位是数符位,用来表示数的符号;而小数点的位置默认为在数符位后面,不单独占一个二进制位,如图所示:
0 1001010010001010001
数符位|小数位 数值位
因此,在一个定点小数中,数符位右边的所有二进制位数表示的是一个纯小数.
2.浮点数
在计算机中,定点数通常只用于表示整数或纯小数.而对于既有整数部分又有小数部分的数,由于其小数点的位置不固定,一般用浮点数表示.
在计算机中所说的浮点数就是指小数点位置不固定的数.一般地,一个既有整数部分又有小数部分的十进制数D可以表示成如下形式:
D=R*10N
其中R为一个纯小数,N为一个整数.
如一个十进制数123.456可以表示成:0.123456*103,十进制小数0.00123456可以表示成0.123456*10-2.纯小数R的小数点后第一位一般为非零数字.
同样,对于既有整数部分又有小数部分的二进制数口也可以表示成如下形式:
D=R*2N
其中R为一个二进制定点小数,称为D的尾数;N为一个二进制定点整数,称为D的阶码,它反映了二进制数D的小数点的实际位置.为了使有限的二进制位数能表示出最多的数字位数,定点小数R的小数点后的第一位(即符号位的后面一位)一般为非零数字(即为“1”).
在计算机中,通常用一串连续的二进制位来存放二进制浮点数,它的一般结构如图所示:
阶符 N 数符 R
| 阶码部分 | 小数位 尾数部分
如何计算小数的原码补码与反码
gxhuang1年前1
linjiayuan 共回答了18个问题 | 采纳率88.9%
把小数转化为分数,然后分子和分母分别算原码和补码,然后在相除计算出小数.
已知原码怎么求补码?
ruthma1年前1
connie199 共回答了17个问题 | 采纳率82.4%
若一个值类型为unsinged类型,那么原码和补码相同.
如果是singed类型,那么先求原码的反码,然后再加1.例如01101001-10010110-10010111
已知C0H为一个数的补码,则原码为
露斯玛利1年前2
剥橙子的女巫 共回答了15个问题 | 采纳率93.3%
40H
因为补码=原码各位取反+1
某机字长8位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为( ).
某机字长8位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为( ).
A.2-9 B.2-8 C.1- D.2-7
该选什么?为什么?高手指点一下啊!
zzjoyzzz1年前1
bbdbbzh 共回答了22个问题 | 采纳率77.3%
D
因为问题主要就是理解定点表示法.
所谓定点表示法,是指在计算机中所有数的小数点的位置人为约定固定不变.这样,小数点的位置就不必用记号"."表示出来了.一般地说,小数点可约定固定在任何数位之后,但常用下列两种形式:
定点纯小数:约定小数点位置固定在符号之后,显然,定点数表示法使计算机只能处理纯整数或纯小数,限制了计算机处理数据的范围.为了使得计算机能够处理任意数,我们事先要将参加运算的数乘上一个"比例因子",转化成纯小数或纯整数后进行运算.运算结果比例因子还原成实际数值.比例因子要取得合适,使参加运算的数、运算的中间结果以及最后结果都在该定点数所能表示的数值范围之内.
我就是靠这分析的.
字长为8位 表示某个数的原码 定点整数不够8位前面补零 定点小数要不要补0?
中研杏林1年前1
笠衣披云 共回答了19个问题 | 采纳率84.2%
字长为8位 表示某个数的原码 定点整数不够8位前面补零 定点小数不要补0.
小数和负数的原码反码和补码怎么表示?
小数和负数的原码反码和补码怎么表示?
请举例说明,谢
starlight5201年前1
二太岁 共回答了17个问题 | 采纳率100%
有符号的整数 原码 反码 补码
47 00101111 00101111 00101111(正数补码和原码、反码相同,不能从字面理解)
-47 10101111 11010000 11010001(负数补码是在反码上加1)
十进制-127的原码 补码 反码是多少 给个说明
十进制-127的原码 补码 反码是多少 给个说明
在线等
那位高手帮忙
4180545771年前1
无大朗 共回答了24个问题 | 采纳率95.8%
原 1111 1111,
补 1000 0001.
反 1000 0000
原 化成二进制位0111 1111,-的符号位为1.
反 原码取反 符号位不变
补 反码 +1
计算机存储是采用什么方法?原码、反码、补码在一个有字节里面如何表示有符号的数字,0,-128等 这些的原码、反码、补码怎
计算机存储是采用什么方法?
原码、反码、补码在一个有字节里面如何表示有符号的数字,0,-128等 这些的原码、反码、补码怎么转换,如果溢出,计算机的怎么处理?
宅心玄远1年前1
曳曳_ 共回答了18个问题 | 采纳率105.6%
十进制 → 二进制  (怎么算?要是不知道看计算机基础的书去)
47   → 101111
有符号的整数    原码    反码    补码
  47      00101111  00101111  00101111(正数补码和原码、反码相同,不能从字面理解)
 -47      10101111  11010000  11010001(负数补码是在反码上加1)
求二进制数-1110的原码,反码和补码
wanjun3161年前1
LansingLuo 共回答了19个问题 | 采纳率94.7%
假设字长是8位数。
-1110的原码:1000 1110;
-1110的反码:1111 0001;
-1110的补码:1111 0010。
请用八位二进制数写出 -56 的原码
zb2m4571年前1
jycstar 共回答了18个问题 | 采纳率94.4%
负数的数码与正数一样,符号位有1,即最高位为1,
所以-56的原码是 1011 1000
原码,困扰很久!比如说4-1,因为减去一个数等于加上这个数的补码.所以4-1=4+(1的补码).1是正数,正数的补码是其
原码,困扰很久!
比如说4-1,因为减去一个数等于加上这个数的补码.所以4-1=4+(1的补码).1是正数,正数的补码是其本身.得到4-1=4+1.不懂,
G剑G侠G1年前1
erggz 共回答了22个问题 | 采纳率95.5%
理解有误,应该这样理解4+(-1),然后是4和-1的补码相加,得到结果的补码
00000100
+ 11111111
----------------
1|00000011
前面溢出丢弃,结果是3
补码是从原码转变过来的 为什么-8有补码而没有原码和反码呢
异零1年前1
绿乔小筑 共回答了14个问题 | 采纳率85.7%
补码,并不是从原码转变过来的.
给出一个数字,可以直接求出它的补码,并不用先求出原码、反码.
什么是补码,在教材上是有规定(定义)和算法的,但是,一般都写在后面.
---
按照教材的顺序,是先讲原码,再求反加一,讲出来补码.
实际上,是先有的补码.
先讲补码,也是可以的,甚至可以不用学原码和反码.
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
非常感谢你对我提的那个补码的问题解答.原码的疑惑?
非常感谢你对我提的那个补码的问题解答.原码的疑惑?
书中给出公式
/ x 0
遗梦1年前1
urmelmaqeqv 共回答了23个问题 | 采纳率87%
好像对公式理解错了.n表示实际位数,从1开始.补码:2^n+1+|x|应理解为(2^n)+1+|x|=2^n+|x|+1,即为反码加1的意思.而反码正好是2^n+|x|,这样就没有任何问题了.
不同的书上有时表示不一致,但都声明了n怎么算,可你这里好像没有;不过无论怎样表述,核心意思是一致的.如有问题可继续……
下列编码中,______ 不能表示带符号的整数.A.原码 B.BCD码 C.反码 D.补码
ziyushi1年前1
blyz 共回答了16个问题 | 采纳率93.8%
BCD码.
求问二进制的补码和反码问题.RT,-1000110的补码.首先负数的补码求解方法是它的原码除符号位外逐位取反再末位加1,
求问二进制的补码和反码问题.
RT,-1000110的补码.
首先负数的补码求解方法是它的原码除符号位外逐位取反再末位加1,也就是说-1000110的符号位应该是那个符号啊!那么这样的话它的反码就应该是10111001,然后再加一,就是10111010
可是为什么书上给的答案是1111010,书上的算法就是吧负号后一位的那个“1”当成了符号位,可是不应该啊,符号位应该是那个负号啊!
西飏1年前1
hhjjah 共回答了23个问题 | 采纳率91.3%
数字:-100 0110.
负数的补码求解方法是它的原码除符号位外逐位取反再末位加1.
原码:1 100 0110;
反码:1 011 1001;
补码:1 011 1010.
--可是为什么书上给的答案是 111 1010 !
书,也有错的时候.
原码、反码、补码之间的关系
tommy43061年前1
miniro 共回答了16个问题 | 采纳率81.3%
给你举个例子吧:二进制,原码(101011),反码(010100),反码是相对与原码而言的,逐位取反;十进制,原码6,补码4,补码和进制相关,6+4=10,所以说4和6互为补码
求37 、-37、57、-57的原码反码补码(8位表示)
xiaojing11461年前1
hw8832 共回答了18个问题 | 采纳率94.4%
正数的反码与原码相同.
负数的反码,符号位为“1”,数值部分按位取反.
正数的补码与原码相同.
负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1.
37=0010 0101 原码
0010 0101 反码
0010 0101 补码
-37=1010 0101
1101 1010
1101 1011
57=0011 1001
0011 1001
0011 1001
-57=1011 1001
1100 0110
1100 0111
+8和-8的原码,补码和反码分别是什么?
aqjmx1年前1
cjw789 共回答了18个问题 | 采纳率100%
+8
原码:00001000
补码:00001000
反码:00001000
-8
原码:10001000
补码:11111000
反码:11110111
假定某台计算机的机器数占8位, 请写出十进制数-23的原码、反码和补码
假定某台计算机的机器数占8位, 请写出十进制数-23的原码、反码和补码
如上
影法师1年前1
ALOMAS 共回答了23个问题 | 采纳率95.7%
因为数据在计算机中都是以二进制表示的,编译系统对于不同类型的变量分配不同大小的存贮空间,制定不同的取值范围。比如整型在计算机中的存储用2个字节16位的存储空间,其中的最高位代表符号位的,符号位为0表示的是正数,符号位为1表示为负数,整型数据在内存中以二进制的补码存放。
以10和-10说明正数在内存中的存放形式:
例如:十进制 10 -10
二进制原码 0000000000001010 1000000000001010
二进制反码 0000000000001010 1111111111110101
二进制补码 0000000000001010 1111111111110110
所以:-23在计算机的机器数占8位的
二进制原码为10010111
二进制反码为11101000
二进制补码为11101001
用原码求解补码的时候是在反码的基础上尾数加一,这里加一的原因是因为-0被-128代替从而集体进一么?
sovonho1年前1
Pengpeng01 共回答了13个问题 | 采纳率100%
这只是求补码的一种方法,与你说的没有关系.其实求补码还有更好的更方便的方法,根据正负数相加为0,如2+(-2)=0,那-2就要用补码来表示了,则有-2补=0-2=0000 0000 - 0000 0010=1111 1110.
原码 反码 补码 移码-27/32的原码反码补码移码
落日遇故人1年前1
多预订几个uu 共回答了13个问题 | 采纳率100%
注:D为十进制尾标,B为二进制尾标
-27/32 = -0.84375D = -0.11011B
(8位)原码:1.1101100
反:1.0010011
补:1.0010100
小数无移码
写出补码为11000011的原码和反码
火焰融冰1年前1
卓越笃信 共回答了18个问题 | 采纳率94.4%
[x]补 =1100 0011b
[x]反 =1100 0010b
[x]原 =1011 1101
整形数据的溢出这个32767的二进制说,原码,补码都是0111 1111 1111 1111加一个数之后 就变成了 10
整形数据的溢出

这个32767的二进制说,原码,补码都是0111 1111 1111 1111
加一个数之后 就变成了 1000 0000 0000 0000
若最高位作为符号位,那么这个值应该是0才对,所谓的溢出,我无法理解
电子产品降价快1年前1
眉眼深深 共回答了10个问题 | 采纳率90%
改成long就行了.
写出十进制数-79的原码、补码、反码
那样一个人1年前1
北纬67度9分半 共回答了18个问题 | 采纳率88.9%
-79的二进制原码为:11001111
补码为:00110001
反码为:00110000
二进制中,
反码= 原码中的0换成1,1换成0
补码=反码+1
计算机字长为16位的,有符号数最小为-32678?书上说是1000 0000 0000 0000…求原码,补码的算法,谢
计算机字长为16位的,有符号数最小为-32678?书上说是1000 0000 0000 0000…求原码,补码的算法,谢谢了!
xiaoyiliangliang1年前1
尾涂 共回答了15个问题 | 采纳率86.7%
看到你的问题我去查了下资料,
如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767
最小为1111111111111111=-2的15次方减1=-32767
此时0有两种表示方法,即正0和负0:0000000000000000=1000000000000000=0
所以,二进制原码表示时,范围是-32767~-0和0~32767,因为有两个零的存在,所以不同的数值个数一共只有2的16次方减1个,比16位二进制能够提供的2的16次方个编码少1个.
但是计算机中采用二进制补码存储数据,即正数编码不变,从0000000000000000到0111111111111111依旧表示0到32767,而负数需要把除符号位以后的部分取反加1,即-32767的补码为1000000000000001.
到此,再来看原码的正0和负0:0000000000000000和1000000000000000,补码表示中,前者的补码还是0000000000000000,后者经过非符号位取反加1后,同样变成了0000000000000000,也就是正0和负0在补码系统中的编码是一样的.但是,我们知道,16位二进制数可以表示2的16次方个编码,而在补码中零的编码只有一个,也就是补码中会比原码多一个编码出来,这个编码就是1000000000000000,因为任何一个原码都不可能在转成补码时变成1000000000000000.所以,人为规定1000000000000000这个补码编码为-32768.
所以,补码系统中,范围是-23768~32767.
因此,实际上,二进制的最小数确实是1111111111111111,只是二进制补码的最小值才是1000000000000000,而补码的1111111111111111是二进制值的-1.
.
重点是
1.负数在计算机中是补码表示的!
2.正0和负0在计算机里面表示重叠了
3.人为规定负数里面1000 0000 0000 0000是负数里面最小的,-32768就是它.
关于进制转换,原码补码反码等的转换
关于进制转换,原码补码反码等的转换
将下列二进制数据转换为八进制和十六进制
1、11010011.011B
2、101011.101B
3、10001001.001B
4、111.10111B
5、1011000.11B
将下列八进制和十六进制的诗句转换为二进制
1、51.4o
2、ce2.fH
3、307.1o
4、fa0.dH
给出下列近指数的二进制机器数的原码、反码和补码.(小于127且大于-128的用一个字节,超过的用两个字节)
1、-36
2、137
3、-78
4、23
5、-1248
nidma1年前1
MT一超 共回答了18个问题 | 采纳率94.4%
这真是.a.1 八进制 323.3 十六进制 D3.6a.2 53.5 2B.Aa.3 211.1 89.2a.4 7.56 7.B8a.5 130.6 ...
二进制数 11010100 的原码 反码 补码
二进制数 11010100 的原码 反码 补码
0.1010000
-10101100
-0.0110000
带上符号 一共9位啊 只学过8位 怎么破 求过程
小草-KING1年前1
夜风听雨声 共回答了24个问题 | 采纳率87.5%
二进制数 11 010 100 的原码是:11 010 100
反码是:10 101 011 负数反码为对应的正数的原码除符号位外各位取反;
补码是: 10 101 100 负数的补码为对应该数的原码除符号位外各位取反加在最后一位加一;
为什么要定义原码,反吗和补码?能够对十进制数定义反码和补码吗?
Angel5581年前1
聆听夏夜 共回答了15个问题 | 采纳率93.3%
定义补码,目的是把减法改成加法.
十进制数字,就不叫“码”了,叫做补数.
可以看看:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
什么是原码 什么是补码 二者有什么联系
悠悠往事山水画1年前1
2008E 共回答了18个问题 | 采纳率100%
假设机器码为8位,
比如15,他的二进制是00001111,因为他是正数,所以原码为00001111(不变),反码为01110000,补码为01110001
比如-15,他的二进制是-00001111,因为他是负数,所以原码为10001111(第一位为符号位,1表示负,0表示正),反码为11110000,补码为11110001
反码是把原码除符号位的部分都取反,补码是把反码加1