发布网友 发布时间:2022-05-03 11:56
共3个回答
热心网友 时间:2022-06-19 17:58
补码的存在是为了变减法为加法,简化了计算过程,即硬件的设计难度。
首先要知道两个零是怎么来的,0包括+0和-0,在原码和反码中根据其计算公式,有两种形式,而对于补码来说+0,真值为0,000000和-0,其真值为1,0000000补码:一个数如果为正,则它的原码、反码、补码相同。
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1,为了简单起见,我们用1个字节来表示一个整数:问题:0的补码表示+0的补码:00000000-0的补码:
第一步:1111111
第二步+1= 1 00000000
第三部:进位1被丢弃
补码(two's complement)
1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
热心网友 时间:2022-06-19 17:59
因为补码的正零与负零表示方法相同。
补码一共有三个特性,除了补码的正零与负零表示方法相同外,一个负整数(或原码)与其补数(或补码)相加,和为模为补码的第二个特性,第三个特性是则是,对一个整数的补码再求补码,等于该整数自身。
小数的补码则是一种很简单的方式,符号位保持1不变,数值位从右边数第一个1及其右边的0保持不变,左边按位取反即可。
扩展资料:
补码的求法:
正数
正整数的补码是其二进制表示,与原码相同。
【例1】+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)
负数
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
【例2】求-5的补码。
-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)
所以-5的补码是11111011。
【例3】数0的补码表示是唯一的。
[+0]补=[+0]反=[+0]原=00000000
[ -0]补=11111111+1=00000000
参考资料:
百度百科-补码
热心网友 时间:2022-06-19 17:59
以8位字长定点有符号小数为例: