计算机组成原理学习笔记--第二章 数据信息的表示

目录

·前言

一、数据表示的作用

二、数值数据的表示

2.1机器码表示

2.1.1原码

2.1.2反码

2.1.3补码

2.1.4移码

2.1.5总结和补充


·前言

计算机内部流动的信息分为:数据信息(计算机加工处理的对象),控制信息(用于控制数据信息的加工处理)。

一、数据表示的作用

·是将数据按照某种方式组织起来,以便计算机硬件能直接识别和使用

·设计和选择时需考虑的因素:数据的类型、表示的范围和精度、存储和处理的代价、软件的可移植性。

二、数值数据的表示

·有确定的大小,能在数轴上找到他们的位置。(而非数值数据一般为文字和符号,没有值的含义)

2.1机器码表示

·(二进制也有正负之分)真值:用+和-分别表示正和负。

·机器数/机器码:数值和符号(0正1负)一起编码表示二进制数。

·常用的定点数机器码有原码、反码、补码、移码等。

2.1.1原码

·符号化的数值;0正1负,数值位不变;有两个机器0,正00...0,负10...0;加减运算时符号位不能直接参与;目前在计算机中仅用于表示浮点数的尾码

·计算方法

·(正/负)整数和小数:数值位不变,前面添加符号位0正1负。<据定义>

2.1.2反码

·又称“1的补码”(当真值x为负数时,[x]反+|x|的值是全1的编码);符号位同原码的;有两个机器0,正00....0,负11...1;加减法时符号位可以直接参与运算(但是没采用,因为有更方便的--补码,减法可以用加法代替)。

·计算方法

·首先看真值的正负,正数的反码和原码一样,负数的话(1)符号位同原码的(2)数值位要逐位取反。

2.1.3补码

·“模/模数”的概念:是一个数值计量系统的计量范围,记作mod或M。(--12小时制的时钟,最大刻度是12,12也就是它的模,超过就自动减去12/模数)模数和0是等价的

eg:16:00<=>4:00(+12:00)都表示下午4点

 -8和+4(=12+(-8))也是等价的(mod12),也可以说-8和+4对模12是互补的,或者模为12时,-8是+4的补码。

--->可见,负数的补码是该负数加上模数

·补码又称“模2的补码”;有一个多余的编码状态,在定点小数中表示-1,在定点整数中表示-2的n次方;只有一个0  00..0;符号位可以直接参与运算。

·由于计算机中的二进制数据都有字长的限制,数据最高位进位的位权值就是模数,运算结果超过模数的部分都会被自动舍弃。计算机二进制数据的运算属于典型的有模运算

·计算方法

(1)正数(整数和小数):补码等于其原码

(2)负数(整数和小数):

 -真值加上模数

 -反码法--适合硬件,1)符号位为1;2)数据位是真值按位取反,再末位+1

 -扫描法--适合手算,1)符号位为1;2)数据位从右往左,右起第一个1及其右边的0保持不变,其余的按位取反

·知补码求真值:

看符号位,为0表示真值为正,则数值部分不变;为1表示真值为负,数值位采用反码法或者扫描法

·计算机中采用补码表示有符号的整数。(C语言中的char,short,int,long型整数)

·变形补码/双符号位补码

00为正,11为负,其他同上

·表示溢出的检测很容易,运算时最高符号位(第一个)永远表示正确的符号位,01正溢出,10负溢出--适合手工运算,但计算机中常用的还是单符号溢出检测方案

2.1.4移码

·只用于定点整数的表示,通常还表示浮点数的阶码(偏移--便于浮点数的比较;简化浮点机器0的判断);编码方式就是直接将真值加一个常数偏移量(也是修正量)bias(2的n次方)--数轴上平移(保持了真值的大小顺序,可以直接比较大小);0是唯一的10...0;便于浮点运算的对阶操作。

·计算方法:

移码的符号位和补码的相反,数值位相同--正数移码的符号位是1,反之

2.1.5总结和补充

1)原码、反码、补码的符号位相同

2)补码最大负数为全1,其真值为-1,最小负数为1000..0

3)移码全0最小,全1最大

4)*计算机中没有小数点的表示,这里仅仅是为了说明小数点位置,最高位表示符号(来自其他博主,暂时忘记了出处,找到后会补充哒)

2.2定点数表示

·该表示法约定计算机中所有数据的小数点位置固定(无需存储)在数据的最高数位之前(符号位之后)--定点小数<在计算机中主要用于表示浮点数的尾数,没有高级语言数据类型与之对应>;若固定在最低数位之后--定点整数<在计算机中C语言的char,short,int,long型整数与之对应>。

2.2.1定点小数

x0.x1x2x3...xn,其中符号位:x0;数值(有效部分)位(尾数):x1x2....xn;最高有效位:x1。​​​​​​​

2.2.2定点整数

x0x1x2...xn,表示的数据范围需考虑:

1)机器字长(字长越长范围就越大)

2)所采用的机器数表示方法(补码和移码比原码和反码多表示一个数

2.2.3定点数表示范围

·n为机器字长,所表示的每个数都可以对应数轴上的刻度(均匀分布的),整数间隔1,小数间隔2的-n次方。​​​​​​​

·数据超出计算机所能表示的数据范围称为溢出,数据大于最大正数是正上溢,反之。

·定点小数存在精度问题,所有不在数轴刻度上的纯小数都超出了定点小数所能表示的精度,无法表示--精度溢出,需以舍入方式近似表示

2.3浮点数(小数点位置可浮动)表示

2.3.1表示形式--阶码和尾数

·任意二进制数N=2的E次方×M=2的±E次方×(±0.m)

·阶码E:定点整数;位数决定数据表示的范围(越多越大);其值决定了小数点的位置

·尾码M:定点小数;位数决定数据的精度(阶码长度同时越多越高)

·阶码可采用不同的机器码表示

·阶符e0  阶码e1..ek  数符m0  尾数m1..mn

2.3.2表示范围

·阶码正最小,尾数正最小--浮点数正数最小值(最小精度),反之。阶码最大值,尾数最小值--浮点数负数最小值,反之。

·受机器字长的限制-->存在溢出现象

·可表示的数据范围是正数区域、负数区域和0

·若运算结果发生上溢,浮点运算器件会显示溢出标志;若发生下溢,可作为机器0处理;

·阶码每变化一个刻度,数据就变大一倍(∴浮点数在数轴上分布不均匀)--浮点密度变化

2.3.3规格化

·是对尾数--算术左移或右移,并同步减少或增加阶码值-->左移/右移规格化方法

·使尾数真值最高有效位为1,即其绝对值大于或等于(0.1)2进制或(0..5)10进制;绝对值大于1小于2,eg:N=2的E次方×M=2的±e次方×(±1.m)

·隐藏位

2.4 IEEE754浮点数标准

·所有二进制由符号位S、阶码E和尾数M 三部分组成,不同精度的S\E\M位宽不同,偏移量也不同

·主要包括32位单精度浮点数和64位双精度浮点数,分别对应C语言的float和double型数据

 

 2.4.1单精度浮点数

eg:32位的

S 1位,E 8位,M 23位

·阶码E采用移码表示移码,偏移量是127不是标准移码的123。偏移量越大,移码max和min都越小,非规格化数精度越高,规格化数表示范围越小。

·尾数M为定点小数,小数点固定在其最左侧,且小数点左边还有一位隐藏的1,∴实际有效位是24,完成尾数形式是1.M,进行浮点数表示时只保存M。尾数部分是绝对值表示,其符号位也是浮点数的符号位S,为1--表示负数,为0--表示正数。∴浮点数尾数可看作原码表示,

 

·与真值之间的转换流程

 

 2.5十进制编码

2.5.1十进制整数

(1)BCD码:8421码(有权)、2421码(有权)、余3码(无权)--8421码+3(0011)

(2)BIC码:p31

(3)DPD码:p32

2.5.2十进制浮点数

p32

2.6计算机中的数据类型

·汇编语言中取决于指令操作符、高级语言中--C语言p35-p39

 

2.7非数值表示、校验、冗余等p40-p53

课后习题好好做做,多多练习才能掌握好

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值