先提两个问题:
【1】 数字设计中小数的处理
【2】 加法器、乘法器中输出数据的位宽问题
1、有符号数和无符号数的定义,最高位表示符号位,其他位为数据位。无符号数则没有符号位;
2、有符号数和无符号数转化为10进制表示的时候唯一的区别就是最高位的权重不同,这里的负数的表示与3中的表示不相同,这里的每一个位都具有权值,只不过最高位(即符号位)也是参与到权值贡献中,且其表示的为负值;
举例:如4bit二进制若表示有符号数,则表示范围为:-8 ~7
,即1000 ~0111
,若表示为无符号数,则表示范围为:0~15
,即0000 ~ 1111
;
3、计算机中负数的表示方法:采用补码。即负数表示时,除去符号位之外,将数据位先进行取反码操作(按位取反),再作补码操作(反码基础上加1);
NOTE:2、3两种表示有符号数的方式不同。
4、数的位扩展——符号位扩展
基于2中的数据表示方法,为了确保数据大小不变,对数据进行位扩展时,应该对符号位进行扩展;
2019.10.10
实际上,方式2中的方式就是以补码的方式操作的,这时,若要计算出该补码对应的十进制数,
有两种方式:
一,权值法,最高位权值为负;
二、返回原码进行判断(原码至反码的逆操作,同样是先按位取反,然后再加