计算机数制转换,求数的反码、补码

作者&投稿:说芬 (若有异议请与网页底部的电邮联系)
已知计算机的字长为8位,求十进制数-102的原码,反码和补码,要有全过程,谢谢~

-102为十进制数转换为二进制为:
原码:1 1100110(最高位表示符号位1为负数,0为正数,10进制转二进制的方法你应该会)
反码:1 0011001(在原码的基础上,符号位不变,其他位按位取反)
补码:1 0011010(在反码的基础上加一得到)

计算机中的存储系统都是用2进制储存的,对我们输入的每一个信息它都会自动转变成二进制的形式,而二进制在存储的时候就会用到原码,反码和补码
例如:输入25
原码就是:0000000000011001
反码: 1111111111100110
补码: 1111111111100111

数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚. "(摘自>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题.

数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为

(-127~-0 +0~127)共256个.

有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits

( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 显然不正确.

因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算:

( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10

(00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有问题.

( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正确

问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大).

于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:

(-128~0~127)共256个.

注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下:

( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)补 + (11111111)补 = (00000000)补 = ( 0 ) 正确

( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 补+ (11111110) 补= (11111111)补 = ( -1 ) 正确

所以补码的设计目的是:

⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.

⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计

所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码

1.对于正数:[X]原=[X]反=[X]补
如求+78的 原码,补码和反码
【+78】原=01001110B;【+78】反=01001110B;【+78】补=01001110B
2.对于负数:[X]反=[X]原数值位取反,符号位不变
[X]补=[X]反+1
如求-56的原码 补码 反码
【-56】原=10111000B;【-56】反=11000111B;【-56】补=11001000B

反码和补码都很简单, 2原则:
1、正数不变
2、负数时候:反码:对每一‘位’求反就可以了,比如“-001变成110”
补码:反码的结果加1就可以了,比如“-001先变成110【反码】再加1,变成111”


二进制的计算方式是什么
最简单的办法是,用系统自带的“计算器”计算:开始――→附件――→打开计算器――→在版面上“查看”点选:科学型――→再点选“二进制”――→输入二进制数字――→再点选“十进制”――→这样就将二进制数字转化为十进制数字了!二进制的计算方式是什么2 二进制的特点:1、技术实现简单,...

计算机为什么采用二进制
2、简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。3、适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。4、易于进行转换,二进制与十进制数易于互相转换。5、用二进制表示数据...

小数在计算机中的表示
计算机输出计算或处理结果时又将二进制数自动转换成十进制数,这给工作带来极大的方便。 1、数据的单位 计算机中数据的单位有:位、字节和字。 2、正负数的表示 在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。我们把这种正负号数字化的机内表示形式称为机...

计算机上MU是什么意思?
MU则为利率计算,使用在线计算器可进行加(+)、减(-)、乘(*)、除(\/)、平方(x²)、开方(sqrt)、百分数(%)、倒数(1\/x)等简单算术计算。有些还可以进行sin、cos、tan、across等函数计算。部分标准型具备数字存储功能,它包括四个按键:MRC、M-、M+、MU。键入数字后,按M+将...

二进制计算方法是什么意思
二进制计算方法是什么意思1 二进制是什么意思,怎么算 二进制,是计算技术中广泛采用的一种数制。计算方法:二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式...

二进制后面的小数点怎么算?
这时乘积的整数部分是二进制数最低位系数,每次乘积得到的整数序列就是所求的二进制小数。需要指出的是并不是所有十进制小数都能转换成有限位的二进制小数并出现乘积的小数部分0的情况,有时整个换算过程无限进行下去.比如0.42就是把0.42不断乘以2并取整数位为转换结果位。过程:0.42*2=0.84 因为...

2进制到8进 ,10进,16进制怎么来具体计算?
数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理,存储和传输。 [编辑本段]十进制数人们通常使用的是十进制。它的特点有两个:有0,1,2….9十个基本数字组成,十进制数运算是按“逢十进一”的...

二进制简介及详细资料
我们按四位一组转换为16进制: 6D E5 AF 1B 基本运算 二进制数据的算术运算的基本规律和十进制数的运算十分相似。最常用的是加法运算和乘法运算。 二进制加法 有四种情况: 0+0=0 0+1=1 1+0=1 1+1=10 ps:0 进位为1 【例1103】求 (1101)2+(1011)2 的和 解: 1 1 0 1 +1 0 1 1 --- 1...

二进制为什么被选择作为计算机系统内部的数制?
2、简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。3、适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。4、易于进行转换,二进制与十进制数易于互相转换。5、用二进制表示数据...

计算机采用二进制数的原因是什么?
计算机采用二进制数的主要原因是,计算机只能处理二进制编码形式的指令和数据,因此所有信息都必须被转换为二进制的形式。也可以这样说,计算机中采用二进制的主要原因是,1、可进行逻辑运算。2、运算法则简单。3、两个状态的系统容易实现成本。总之,二进制数是目前计算机的最优选择了。

墨玉县19111186222: 计算机数制转换,求数的反码、补码 -
农诗朱砂: 1.对于正数:[X]原=[X]反=[X]补如求+78的 原码,补码和反码 【+78】原=01001110B;【+78】反=01001110B;【+78】补=01001110B 2.对于负数:[X]反=[X]原数值位取反,符号位不变[X]补=[X]反+1如求-56的原码 补码 反码 【-56】原=10111000B;【-56】反=11000111B;【-56】补=11001000B

墨玉县19111186222: 已知计算机的字长为8位,求十进制数的原码、反码和补码 -
农诗朱砂:[答案] 1的原码00000001反码11111110补码00000001-1的原码10000001反码01111110补码11111111说明:原码即为该10进制数的2进制码,反码为二进制码按位取反,正数的补码等于原码,负数的补码等于去掉符号后的原码取反加一.最高位...

墨玉县19111186222: 原码与补码的转换[ - 3]反=[10000011]反=11111100 原码 反码负数的补码是将其原码除符号位之外的各位求反之后在末位再加1.[ - 3]补=[10000011]补=... -
农诗朱砂:[答案] 两个说法都没有错,我们举个例子来看看就明白了: 1、10001的补码是取反后在再加1,也就是11110+1=11111; 2、如果是11111变回原码呢?我们可以采取逆过程先减1,11111-1=11110,再取反变为10001; 3、如果要是在补码变原码时先去反再加...

墨玉县19111186222: 已知计算机字长为8位,求十进制数—102的原码、反码和补码. -
农诗朱砂:[答案] 原码就是这个数本身的二进制形式. 例如0000001 就是+11000001 就是-1 正数的反码和补码都是和原码相同. 负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 负数的补码是将其原码除符号位之...

墨玉县19111186222: 原码,反码和补码表示的规则分别是什么 -
农诗朱砂: 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形式. 例如 ...

墨玉县19111186222: 二进制数反码和补码的算法 -
农诗朱砂: 计算机里的二进制数有八位、十六位等,下面以八位为例 19的二进制数为:0001 0011 那么+19 原码为 0001 0011 反码为 0001 0011 补码为 0001 0011那么-19 原码为 1001 0011 (左边第一位表示正负数,正数为0,负数为1) 反码为 1110 1100 补码为 1110 1101

墨玉县19111186222: 二进制数反码和补码的算法例如19 转换为二进制为 10011那么+19 原码为 00011反码为 00011补码为 00011那么 - 19原码为 00011反码为 01100补码为 01101... -
农诗朱砂:[答案] 计算机里的二进制数有八位、十六位等,下面以八位为例 19的二进制数为:0001 0011 那么+19 原码为 0001 0011 反码为 0001 0011 补码为 0001 0011 那么-19 原码为 1001 0011 (左边第一位表示正负数,正数为0,负数为1) 反码为 1110 1100 ...

墨玉县19111186222: 原码、反码、补码,计算机中负数的表示? -
农诗朱砂:[答案] 一:对于正数,原码和反码,补码都是一样的,都是正数本身. 对于负数,原码是符号位为1,数值部分取X绝对值的二进制. 反码是符号位为1,其它位是原码取反. 补码是符号位为1,其它位是原码取反,未位加1. 也就是说,负数的补码是其反码未位...

墨玉县19111186222: 原码 反码 补码怎么转换 -
农诗朱砂: 反码补码原码怎么转换,来看看方法吧. 1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值. 2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1. 3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1.零分为+0和-0. 进行不同符号的加法或同一符号的减法时,不能直接进行加法或减法,不能直接给出正负的结果. 4、必须先取绝对值,然后再加上减法. 符号比特由较大的绝对值决定,因此出现了转码. 反码是对原始代码的改进.补码在针对加减运算和正负零的问题上都解决了,平时用的最多的也就是补码.

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