CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

姜老师带你设计CPU之2

已有 3006 次阅读 2014-7-31 05:50 |个人分类:计算机科普|系统分类:科普集锦|关键词:学者| CPU设计

姜老师带你设计CPU2

 

1.2.  二进制数

计算机是由电子器件构成的,电子器件的电位,在电路中最容易检测和控制,并且有十分清楚的两种对立状态。如果将低电位用“0”来记,高电位用“1”来记,那么用电子器件排列就可以记录数,这就是计算机为什么使用二进制数的道理。

下面提到的二进制运算对设计运算器很有用。

1.2.1. 二进制数的加减法  

用数码01按着“逢二进一”的规则记数,得到的就是一个二进制数。二进制数只有数码01,顶码是1,所以01互为反码。可以理解,如果进制的基数越小,值相同数的记数位数就越长。二进制是记数位数最多的数制,然而由于数码只有两个,故用机器记数非常方便。

2n的二进制表示是10^(n-1)的形式,将一个十进制数化成二进制数,可以拆分成2n的加法。

【例1‑11  将123化成二进制数。

由于123=64+32+16+8+3,所以

123=1000000(2)+ 100000(2)+ 10000(2)+ 1000(2)+ 11(2)=1111011(2)

因为二进制数只有数码0和1,二进制固定n位数全体的中分点是一个10^(n-1)的数,所以二进制数的对称制表示下正负数判断非常简单,只要看最高位是“0”还是“1”就可以。最高位是“1”一定是负数,否则是正数。

一种流行的错误将最高位的数码说成是“符号”,造成许多误解。

【例1‑12  对称制下计算10111101(2)+11000100(2)

 

同十进制数一样,采用对位加

10111101(2)

+11000100(2) 

————————————

10000001(2)

 

两个负数相加的结果仍然是一个负数,没有发生溢出。结果10000001(2)是一个负数,它是-01111111(2)的对称制表示,所以最后的值是 -127。

为了能够和我们日常的认识一致,手工计算求值的结果一定要化成带符号的十进制数,这样容易理解数值的大小。

 

【例1‑13  对称制下计算10101101(2)-00100010(2)

 

根据对称制下减法可以变成加法的运算方法,现求减数的对称码。

00100010(2)的反码是11011101(2),因此它的对称码是这样

 

10101101(2)-00100010(2)= 10101101(2)+ 11011110(2)ó10001011(2)

 

两负数相加的结果是一个负数,没有溢出。结果的值是-01110101(2),这不是对称制表示,它的值是  - (64+32+16+5)= -117。结果是否正确,我们可以用值运算来验证。

 

10101101(2)=-83,00100010(2)=34,-83-34=-117。

1.2.2. 超长二进制数

由于同样值的数二进制表示的位数最长,并且计算机使用的就是二进制数,所以就以超长的二进制数来说明如何处理一般位数的数。

8位的二进制数为例,假如一个数的长度是64位,那么必须用88位来分别记录其中的一部分,而且要按着顺序排列。在对称制下,这个64位数的正负,要看最高8位的最高位,此位是0,就表示64位数的值是正数,此位是1,就表示这个64位数是负数,负数的表示要通过“求反加一”并添加负号来求值。

超长数的加法运算,要通过限位数的多次计算完成,方法是由低向高逐次进行。除了第一次加运算之外,每次进行的都是带前次进位数的加法,这样才能保证整体的一致性。在运算中如果某些数位数少,那么按着最高位来添加高位数码即可。例如

10110+101110110101ó111111110110+101110110101

这种事情也可以反过来作,如果从高位过来的二进制数有连续若干个相同的数码,那么在对称制下可以只保留一个。

超长数的加法运算溢出判断同一般的限位数,只要对同号两数值符号的变化进行判断即可。减法的运算是通过加法完成的,因而用加法判断溢出。

如果二进制数带有小数点,那么可以用2n去乘(n是正整数),使之成为一个整数处理,最后再将结果用2n去除化成相应的小数。由于这种乘或除只是认识上的小数点移动,实际操作中并不需要产生动作,因而记住小数点的位置,将带小数点的数作为整数处理没有任何问题。

n位二进制数的表数范围是[-2n-12n-1-1],表面值是对称点2n-1,用二进制来表示是10^(n-1)

 

 



https://m.sciencenet.cn/blog-340399-816028.html

上一篇:姜老师带你设计CPU(1)
下一篇:姜老师带你设计CPU之3

1 刘洋

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-21 14:25

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部