原码是怎么算( 二 )


两个有符号数进行加法运算时,如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错 。很显然,溢出只能出现在两个同符号数相加或两个异符号数相减的情况下 。对于加法运算,如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)相加(包括次高位的进位)却没有进位输出时,或者反过来,次高位没有进位加入最高位,但最高位却有进位输出时,都将发生溢出 。因为这两种情况是:两个正数相加,结果超出了范围,形式上变成了负数;两负数相加,结果超出了范围,形式上变成了正数 。
而对于减法运算,当次高位不需从最高位借位,但最高位却需借位(正数减负数,差超出范围),或者反过来,次高位需从最高位借位,但最高位不需借位(负数减正数,差超出范围),也会出现溢出 。
计算机原码补码的计算

原码是怎么算

文章插图
计算机原码补码的计算方法:1、原码:在计算机中的机器字长的最高位(最左边)表示正负,0为正数,1为负数,原码就是最高位是符号位,其余位表示数值(绝对值)大小 。2、反码:正数的反码就是其本身(原码)不变,而负数的反码就是在负数原码的基础上符号位保持不变,其余位按位取反 。
3、补码:正数的补码就是其本身(原码),而负数的补码就是在原码的基础上符号位保持不变其余位按位取反,然后再+1,即在反码的基础上+1 。
总结:正数的原码、反码和补码都一样,都等于原码 。负数的反码就是在原码的基础上符号位不变其余位按位取反,负数的补码就是在反码的基础上+1 。扩展资料:原码(true form)是一种计算机中对数字的二进制定点表示方法 。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小 。
原码不能直接参加运算,可能会出错 。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2 。显然出错了 。
所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性 。在计算机系统中,数值一律用补码来表示和存储 。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理 。
【原码是怎么算】补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:(1)解决了符号的表示的问题;(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计;(3)在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易;(4)补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便 。
原码,补码,反码,移码的表示方法怎么算?
原码是怎么算

文章插图
原码就是把原来的数化成2进制比如10的原码就是00001010,+10的原码是00001010,最高位的0代表这个数是正数(最高位就是符号位).-10的原码就是10001010,最高位的1代表这个数是负数+10的原码是00001010,那他的反码,补码都和原码相同也是00001010,原因是正数的原反补码相同-10的原码是10001010,那他的反码是11110101,也就是符号位不变,其他位0变1,1变0.他的补码是在反码的基础上,最低位加1,也就是11110110.明白了吧?
原码,反码与补码怎么计算的
原码是怎么算

文章插图
举例说明如下真值 -11d = -1011b , 若字长8位, 则:[-11d]原 =10001011b , 最高位是符号位,1表示负数,其余为数值位符号位右侧的3个0用于补齐8位[-11d]反 =11110100b , 将原码除符号位之外的各位取反得反码[-11d]补 =11110101b,将反码末位加1得补码 若真值是正数,无须上述操作,正数的原码反码补码符号位为0,数值与真值相同例如:[+19d]原 =[+19d]反 = [+19d]补 = 00010011b 符号位右侧的2个0用于补齐8位( d是十进制数后缀 , b是二进制数后缀 )