原码反码补码题目和答案,计算机原码反码补码的两道题
原码反码补码题目和答案,计算机原码反码补码的两道题详细介绍
本文目录一览: 在字长为8位的计算机中,下列数的原码、反码及补码各为多少? +18、-18、+31、-31、+127、-127
【答案】:8位字长的计算机表示机器数,每个机器数是8位,最高位为符号位,后7位为数值位。因此[+18]原=[+18]反=[+18]补=00010010[-18]原=10010010[-18]反=11101101[-18]补=11101110[+31]原=[+31]反=[+31]补=00011111[-31]原=10011111[-31]反=11100000[-31]补=11100001[+127]原=[+127]反=[+127]补=01111111[-127]原=11111111[-127]反=10000000[-127]补=10000001
5.请计算下列值的原码、反码和补码(用8位二进制数表示)。25+32-53-253?
首先,我们需要将25、32、53、253转换成二进制表示:
25 = 0001100132 = 0010000053 = 00110101253 = 11111101
接下来,计算25+32-53-253的十进制值:
25 + 32 - 53 - 253 = -249
因为结果为负数,所以需要用补码表示。下面分别计算其原码、反码和补码:
原码:10000001
反码:11111110
补码:11111111
因此,25+32-53-253的原码、反码和补码分别是:
原码:10000001反码:11111110补码:11111111
将下列有符号的十进制数转换为相应的二进制数真值、原码、反码和补码:
【答案】:(+124)10=(+1111100)真值=(011111(30)原码=(01111100)反码=(01111100)补码$(-30)10=(-11110)真值=(111110)原码=(100001)反码=(100010)补码$(-27/32)10=(-0.11011)真值=(1.11011)原码=(1.00100)反码=(1.00101)补码$(+127)10=(+1111111)真值=(01111111)原码=(01111111)反码=(01111111)补码
已知x=-105 128,若采用8位机器码表示,则[x]补= ( ) 。
【答案】:A
这一类型题目考查知识点是小数原码和补码表示方法。在机器码表示中,小数表示方法是:数最左面是符号位,对于原码、反码或补码,如果该小数是正数,则该符号位为0,如果该小数是负数,则该符号位为1;其余各位为该小数数据位,从左起,第2位权值为1/2,第3位权值为1/4,依此类推。解答此类题目一般思路是:将给定分式分解成多个分式之和形式,每个分式分子为1,分母为2幂次,这样可以确定其原码表示。而使用补码表示一个小数时,只要将该数除符号位之外求反,然后加1,就可以得到该数补码表示。针对这道题目,由于x=-105/128=-(64/128+32/128+8/128+1/128)=-(1/2+1/4+1/6+1/128)。根据上面分析,可以确定x原码为11101001。对原码求反(符号位不变)后值为10010110,加1得到该数补码为10010111。所以本试题正确答案是选项A。
计算机原码反码补码的两道题
在计算机系统中,数值。一律采用补码表示和存储。
计算机,并不使用原码和反码。
在计算机中,也根本就没有原码和反码。
所以,只要掌握“数值与补码”的转换,就可以了。
两者对应,如下:
转换,极其简单。小学生,都能写出公式来。
正数的反码和补码都与原码相同,负数的反码为对该数的原码除符号位外各位取反,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1,由上可知1、110101的原码反码和补码都是00110101,-101101的原码是10101101,反码是11010010,补码是11010011,2、x=-127D是指十进制的-127转换成二进制原码为11111111,反码为10000000,补码为10000001
原码 反码 补码的简单计算附例题
就是数值在计算机中的二进制表现形式
机器数在计算机中有符号,使用 最高位表示符号 , 使用0 表示正,使用 1 表示负
一个字节8个bit位表示
+5 = 0000 0101
-10 = 1000 1010
机器数所表示的真正的数值
如 : 1000 1010 = -10
原码就是符号位加上真值的绝对值
正数 : 正数的反码 = 原码 如: +3 = 0000 0011[原码] = 0000 0011 [反码]
负数 : 符号为不变 ,其余各位直接取反 , 1->0 0->1
计算机中数据以补码的形式,同样以补码的形式参与运算
正数 : 原码 = 反码 = 补码 如 : +3 0000 0011[原码] = 0000 0011[反码] = 0000 0011[补码]
负数 : 首先求的反码,在反码的基础上 + 1,[加到最低位上]
正数 : 不需要转
负数 : 求补码的补码
将负数的补码当做原码,然后求该原码的补码
计算规则 :符号位不变,其余各位直接取反,然后加1;
俩补码相加得0001 0111 = 23
俩补码相加得 1100 1110 == -78
俩补码相加得 1100 0110 = -70
假设某计算机的机器数为8位,写出下列各数的原码、补码和反码:21,-35,-26
21的原码:0001 0101,补码:1110 1011
-35的原码:1101 1101,补码:0010 0011
-26的原码:1110 0110,补码:0001 1010
正数与负数互为补码,正数的原码取补码得该正数的相反数;负数的的原码取补码得该负数的相反数。
计算机系统中,数值,一律用补码来表示和存储。
原码和反码,在计算机中,根本就是不存在的。
所以,只要掌握“数值与补码”的互换,即可。
原码反码,都是没有任何用处。
原码是11010011,反码是10101100,补码是10101101。
1、21
原码:0001 0101
补码:0001 0101
反码:0110 1010
2、-35
原码:1101 1101
补码:0010 0011
反码:1010 0010
3、-26
原码:1110 0110
补码:0001 1010
反码:1001 1001
正整数的补码是其二进制表示,与原码相同。负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1 。
扩展资料:
已知一个数的补码,求原码的操作其实就是对该补码再求补码:
1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
例:已知一个补码为11111001,则原码是10000111(-7)。
因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;再加1,所以是10000111。
参考资料来源:百度百科-反码
参考资料来源:百度百科-补码
原码,反码,补码和移码: 原码:1001101,反码,补码,移码各是多少?
反码:1,110010(除符号位以外,各位取反)
补码:1,110011(除符号位以外,各位取反,末位加一)
移码:0,110011(对补码符号位取反)
注意:
1、首先判断原码的正负,因为对于正数,其原码、补码反码表示形式相同(符号位为0,数值部分与真值相同)
2、对于反码和补码,要区别:已知[x补],求[-x补]的题目(连同符号位各位取反,末位加一)
扩展资料:原码、反码、补码、移码的运算方法
运算过程:原码->反码->补码->移码原码 :二进制(开头第一个表示符号0正1负)反码 :在原码的基础上,符号位不动,其他位取反 ---注意,任何正数的源码=反码=补码,而负数都是通过补码表示的。
补码 :在反码的基础上,运算+1 ---注意,任何正数的源码=反码=补码,而负数都是通过补码表示的。
公式:两数补码的和==两数和的补码。移码 :在补码的基础上,符号位取反
例如:
例子3 10+(-10)=0 (使用补码)10(十进制) --- 00001010(源码)----同源码(反码)----同源码(补码)-10(十进制) --- 10001010(源码)----11110101(反码)----11110110(补码)00001010+ 10的源码----注意正数用补码(值等同于源码)11110110 -10的补码----注意负数用补码---------00000000 得到了0的补码
我们考试要考(权当练习):
原码:1,001101
=>负数
=>反码:1,110010(除符号位以外,各位取反)
=>补码:1,110011(除符号位以外,各位取反,末位加一)
=>移码:0,110011(对补码符号位取反)
注意点:1,首先判断原码的正负,因为对于正数,其原码、补码反码表示形式相同(符号位为0,数值部分与真值相同)
2,对于反码和补码,要区别:已知[x补],求[-x补]的题目(连同符号位各位取反,末位加一)
解:首位数字表示正负不做变(1为负数,0为正数)
反码:1110010(正数反码等于原数,题中为负数,则除首位数对应取反)
补码:1110011(得出反码数基础上末位加一)
移码:0110011(补码符号位第一位数字取反)
反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
补码(2's complement)是一种用二进制表示有号数的方法,也是一种将数字的正负号变号的方式。
移码(又叫增码)是符号位取反的补码,一般用指数的移码减去1来做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。
反码:1110010
补码:1110011
移码:0110011
对于负数的反码是原码符号位不变,其它位数取反;
补码是反码加一;
移码就是在原有的补码的基础上对于符号取反。
1001101,这个数是正数。
正数,不需要变化,原码反码补码,都是这个正数。
-----------
-1001101,这个数是负数。
原码=1100 1101;
反码=1011 0010;
补码=1011 0011。
移码,常用的有两种:+128、+127,你分别求一下吧。
解:首位数字表示正负不做变(1为负数,0为正数)反码:1110010(正数反码等于原数,题中为负数,则除首位数对应取反)补码:1110011(得出反码数基础上末位加一)移码:0110011(补码符号位第一位数字取反)
反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
补码(2's complement)是一种用二进制表示有号数的方法,也是一种将数字的正负号变号的方式。
移码(又叫增码)是符号位取反的补码,一般用指数的移码减去1来做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。
扩展资料补码的设计目的是:
1.使符号位能与有效值部分一起参加运算,从而简化运算规则.
2.使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。
小数和分数的补码:
1.十进制分数补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的补码形式。
2.十进制小数的补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的补码形式。
参考资料:百度百科-二进制补码
求-58的原码,反码,补码。
-58的原码1 111010
反码1 000101
补码1 000110(反码加一)
负整数的原码,反码和补码
1)负整数的原码
当面对一个负整数时,写出相对应n位原码的规则如下:最左的位为1;写出此负整数的绝对值相对应的二进制数,然后将所得结果放到最右边;中间剩余的位全为0.
例题:负整数-25所对应的8位原码是什么? 答案:1001 1001
2)负整数的反码
当面对一个负整数时,写出相对应n位反码的规则如下:最左的位为1;写出此负整数的绝对值所对应的二进制数,然后将所得结果放到最右边;中间剩余位全为0;最后将最右边的n-1位全部取反(0变为1,1变为0)。
例题:负整数-25所对应的8位反码是什么? 答案:1110 0110
3)负整数的补码
当面对一个负整数时,写出相对应n位补码的规则如下:最左的位为1;写出此负整数的绝对值所对应的二进制数,然后将所得结果放到最右边;中间剩余位全为0;
将最右边的n-1位全部取反;在最低位加1。
例题:负整数-25所对应的8位补码和16位补码分别是什么? 答案:1110 0111 和 1111 1111