计算机组成原理<四>——数据的表示和运算(下)(一)

简介: 计算机组成原理<四>——数据的表示和运算(下)

定点数的表示与运算


定点数的表示


无符号数与有符号数

1)无符号数

指整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值.若机器字长为8位,则数的表示范围为0——2^8-1,即:0-255

注:通常只有无符号整数,而没有无符号小数.

2)有符号数

image.png

机器数的定点表示

定点小数

定点小数是纯小数,约定小数点位置在符号位之后,有效数值部分最高位之前.若数据X的形式为X=x0x1x2x3....xn(其中x0为符号位,x1-xn是数值的有效部分,也称尾数,为最高有效位),则在计算机中的表示形式如图:(机器字长为n+1位)


当x0=0,x1-xn均为1时,X为其所能表示的最大正数,真值为1-2^-n;


当x0=1,x1-xn均为1时,X为其(原码)所能表示的最小负数,真值等于-(1-2^-n);

image.png

定点整数

定点整数是纯整数,约定小数点位置在有效数值部分最低位之后.若数据X的形式为X=x0x1x2....xn(其中x0为符号位,x1-xn是尾数,xn为最低有效位),则在计算机中的表示形式如图2.5所示(设机器字长n+1位).

image.png

当x0=0,x1-xn均为1时,X为其所能表示的最大正数,真值为2^n-1

当x0=1,x1-xn均为1时,X为其(原码)所能表示的最小负数,真值等于-(2^n-1);

原码,反码,补码,移码

原码

用机器数的最高位表示该数的符号,其余的各位表示数的绝对值.原码的定义如下:

image.png

注意:真值零的原码表示有正零和负零两种形式,即[+0]原=00000和[-0]=10000。

反码

反码通常用来作为由原码求补码或由补码求原码的中间过渡。

若符号位为0,则反码与原码相同.

若符号位为1,   则数值位全部取反.

image.png

补码

正数的补码=原码

负数的补码=反码末位+1(要考虑进位)

image.png

移码

补码的基础上将符号位取反。注意:移码只能用于表示整数

image.png

注:移码全0时,对应真值的最小值-2^n;移码全1时,对应真值的最大值为2^n-1;

     移码保持了数据原有的大小顺序,移码大真值就大,移码小真值就小;

知识回顾

image.png

定点数的运算


移位运算


原码的算术移位

image.png

原码的算术移位——符号位保持不变,仅对数值位进行移位.

右移:高位补0,低位舍弃.若舍弃的位=0,则相当于/2:若舍弃的位不等于0,则会丢失精度

image.png

左移:低位补0,高位舍弃,若舍弃的位=0,则相当于/2,若舍弃的位不等于0,则会出现严重误差

反码的算术移位

image.png

反码的算术移位——正数的反码和原码相同,因此对正数反码的移位运算也和原码相同

右移:高位补0,低位舍弃.

左移:低位补0,高位舍弃

image.png

反码的算术移位——负数的反码数值位与原码相反,因此负数反码的移位运算规则如下,

右移:高位补1,低位舍弃

左移:低位补1,高位舍弃

补码的算术移位 

image.png

补码的算数移位——正数的补码与原码相同,因此对正数补码的移位运算也和原码相同

右移:高位补0,低位舍弃

左移:低位补0,高位舍弃

image.png

补码的算数移位——负数补码=反码末位+1

导致反码最右边几个连续的1都因进位而变为0,直到进位碰到第一个0为止.

规律——负数补码中,最右边的1及其右边同原码.最右边的1的左边同反码.

负数补码的算数移位规则如下:

右移(同反码):高位补1,低位舍弃

左移(同原码):低位补0,高位舍弃

逻辑移位

逻辑移位将操作数视为无符号数,移位规则:逻辑左移时,高位移丢,低位添0;逻辑右移时,低位移丢,高位添0

注意:逻辑移位不管是左移还是右移,都添0

循环移位

循环移位分为带进位标志位CF的循环移位(大循环)和不带进位标志位的循环移位(小循环),过程如图2.7所示

循环移位的主要特点是,移出的数位又被移入数据中,而是否带进位则要看是否将进位标志位加入循环位移。例如.带进位位的循环左移就是数据位连同进位标志位一起左移,数据的最高位移入进位标志位CF,而进位位则依次移入数据的最低位

image.png

章节回顾


image.png

加减运算


原码加减运算

image.png

这样用减法器和加法器可以求出结果,加法器设计起来简单,不过减法器设计起来就很复杂了而且成本也高。那么我们能不能想一个方法,只用加法器来完成这个过程?

加法代替减法

我们举个例子,假如现在10点,我们如何将其调到7点?第一种方法就是逆时针调三格,10-3就可以了,第二种方法就是顺时针调九个,(10+9)%12,这就相当于求余数了

模运算性质:

带余除法——设x,m属于Z,m>0则存在唯一决定的整数q和r,使得:

x=qm+r  0<=r<m

image.png

说明-3,9,21,33,-15这些数都是等价的

想用加法代替减法。就可以用9代替-3,这两者又是互补的

所以:模-a的绝对值=a的补数(12-3=9)

在机器字长为8bit位上,可以看成是模2^8,数都映射到0-2^8-1上.:

image.png

计算机只有八个比特字长,硬件会天然的帮我们模2^8,最高位1会被处理掉,结果就是0了

补码——让减法操作转变为加法操作,节省硬件成本.

这里其实就是求该数的补码(模-a的绝对值=a的补数)

image.png

补码加减运算

image.png

溢出判断

image.png

计算机如何进行溢出判断?

image.png

image.png

image.png

符号扩展

image.png

在一定程度上避免溢出

章节回顾


image.png

相关文章
|
7月前
【408计算机组成原理】—移位运算(七)
【408计算机组成原理】—移位运算(七)
|
存储 人工智能 BI
计算机组成原理<四>——数据的表示和运算(下)(三)
计算机组成原理<四>——数据的表示和运算(下)
计算机组成原理<四>——数据的表示和运算(下)(三)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)
408计算机组成原理学习笔记——浮点数的表示和运算
408计算机组成原理学习笔记——浮点数的表示和运算
439 1
408计算机组成原理学习笔记——浮点数的表示和运算
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(四)
410计算机组成原理学习笔记——运算方法和运算电路
148 1
410计算机组成原理学习笔记——运算方法和运算电路(四)
408计算机组成原理学习笔记——运算方法和运算电路(一)
408计算机组成原理学习笔记——运算方法和运算电路
278 1
408计算机组成原理学习笔记——运算方法和运算电路(一)
409计算机组成原理学习笔记——运算方法和运算电路(二)
409计算机组成原理学习笔记——运算方法和运算电路(二)
298 1
409计算机组成原理学习笔记——运算方法和运算电路(二)
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(三)
410计算机组成原理学习笔记——运算方法和运算电路(三)
319 1
410计算机组成原理学习笔记——运算方法和运算电路(三)