计算机组成原理2(紫色系标注,红色系重要‼️)

本文详细阐述了数据表示在计算机中的作用,包括数值数据的原码、反码、补码、移码表示以及浮点数的表示范围、精度和规格化方法。还介绍了ASCII字符表示、GB2312汉字表示和数据校验技术,如异或校验。后续内容将在下一博文中给出例题解答。
摘要由CSDN通过智能技术生成

目录

2.1数据表示的作用

2.2数值数据的表示

术语:

几个常用的2的幂:(最好背住,会大大减小相关题目难度)

数的机器码表示:

1、原码:

2、反码:

3、补码:

变形补码:

4、移码:

定点数的表示

浮点数的表示

浮点数的一般格式为:

浮点数的表示范围和精度

浮点数的规格化:

单精度浮点数的编码格式如下表:

表示范围如下表:

单精度浮点数与真值之间的转换方法:

将小数转换为十六进制数通常涉及以下步骤:

2.3非数值数据的表示

字符表示法

汉字表示法

2.4数据信息的校验

2.5例题(下一篇博客里)


2.1数据表示的作用

数据表示的作用是将数据按照某种方式组织起来,以便计算机硬件能够直接识别和使用。在设计和选择计算机内的数据表示方式时,一般需要综合考虑如下几方面的因素:

(1)数据的类型:支持数值数据和非数值数据

(2)表示的范围和精度:选择适当的数据类型和字长

(3)存储和处理的代价:使设计的数据格式易于表示、存储和处理

(4)软件的可移植性:满足应用需求的前提下,符合相应的规范,方便移植

二进制是现代计算机中数据表示的不二之选,采用二进制可以表示任何数据信息。

2.2数值数据的表示

术语:

计算机中常用寄存器来保存数据,寄存器中每个位称为bit,最高有效位记为MSB,最低有效位记为LSB。

  数值数据有确定的值,它表示数的大小,能在数轴上找到它们的位置;非数值数据一般为符号和文字,没有值的含义。 

几个常用的2的幂:(最好背住,会大大减小相关题目难度)

数的机器码表示:

1、原码:

最高位为符号位,0为正,1为负,数值位与真值相同。

特征:直观易懂,零的表示不唯一,加减法运算复杂。

2、反码:

二进制的各位数码取反,符号位的表示与原码相同。(正数时,不变,负数时,符号位不变,数值位与原码取反)

特征:零的表示不唯一,用求反操作用逻辑门容易实现,加减运算较原码简单,但是运算最后需要将符号位的进位加到最低位上进行结果修正。

3、补码:

建立的“模”(或“同余”)的概念上。“模”即为符号位进位位的权值。真值为正数的时候,补码与原码一样,真值为负数时,需要增加一个模数。(正数时,不变,负数时,其反码+1)

特征:零的表示具有唯一性,加减运算方法简单,符号位与数值一起参加运算,减法可以用加法来实现,只需将减数带符号位一起求补(按位取反,末位加一)即可。表示范围比原码和反码大。

变形补码:

双符号位补码,也叫“模4补码”(定点小数)。用两个二进制位表示数据的符号,“00”表示正,“11”表示负,常用于运算时检测溢出,当运算结果的符号位为“01”时,发生“上溢出”,当运算结果符号位为“10”时,发生“下溢出”。

4、移码:

用于表示浮点数的阶码, 所以只有整数形式。编码方式是直接将真值x加上一个常数(偏移量),相当于将x沿数轴正方向平移了一段距离。移码保持了真值数据的大小顺序,所以移码可以直接比较大小,为浮点运算带来了方便。

 比较补码的公式发现,移码和补码的符号位相反,数值相同,因此,一个数的移码可以将其补码的符号位取反得到。此外,移码表示的零也具有唯一性,形式为1000…0。(正数时,不变,负数时,符号位相同,数值位与补码相同)

用移码表示浮点数的阶码具有的优点如下:

(1)可直接按照无符号数的规则比较两个移码表示数据的大小,便于浮点数比较大小;

(2)有利于简化“浮点机器零”的判断。

定点数的表示

约定计算机中所有数据的小数点位置固定。下面左图为定点小数的格式和表示范围,右图为定点整数的格式和表示范围。

浮点数的表示

小数点位置可以浮动,一种类似十进制科学计数法是表示形式如下:

二进制浮点数需要表示出E和M两部分,其中E称为阶码,是定点整数,M称为尾数,是定点小数。

浮点数的一般格式为

浮点数的表示范围和精度

浮点数的阶码位数决定数据的表示范围,尾数的位数决定数据表示的精度。机器字长一定时,阶码越长,表示范围越大;阶码位数一定时,尾数越长,浮点数的精度越高。浮点数的表示范围比定点数更大,精度更高。

浮点数的规格化

使尾数真值最高有效位为1,即使尾数的绝对值大于或等于十进制0.5(二进制0.1)。对非规格化数需要进行“左移规格化处理”或“右移规格化处理”。规格化尾数的最高位“1”可以隐藏,存储时可以增加一个数值位,从而可以提高精度。

IEEE754浮点数标准:定义了单精度浮点数和双精度浮点数的国际标准形式,由符号S、阶码E、尾数M三部分构成。格式如下:

阶码和尾数的位数分配是表示范围和精度的折衷。阶码用移码表示,偏移量为127和1023;尾数用原码表示,符号位在首位,是一般格式中尾数的符号。标准格式与真值之间的关系:

单精度浮点数的编码格式如下表:

表示范围如下表:

单精度浮点数与真值之间的转换方法:

例题:将数(20.59375)10转换成IEEE754单精度浮点数的十六进制机器码。
解:

(20.59375)10=(10100.10011)2=1.010010011X(2)4次方

S=0

E=e+127=4+127=131=10000011

M=010010011 

将小数转换为十六进制数通常涉及以下步骤:

1. 分离整数和小数部分:首先,将小数点前后分开处理。整数部分可以直接转换为十六进制,而小数部分则需要特殊处理。
2. 整数部分转换:将整数部分直接转换为十六进制。这可以通过不断除以16并记录余数的方式完成,最后将余数倒序排列得到整数部分的十六进制表示。
3. 小数部分转换:对于小数部分,可以通过乘以16的方式来获取小数点后第一位的十六进制数,然后取整数部分作为结果,接着用小数部分继续乘以16,重复这个过程直到达到所需的精度或者小数部分变为0。
下面是一个具体的例子,说明如何将十进制小数0.625转换为十六进制:
分离整数和小数部分:在这个例子中,整数部分是0,小数部分是0.625。
整数部分转换:由于整数部分是0,它的十六进制表示也是0。
小数部分转换:
0.625 * 16 = 10(取整数部分为1,小数部分为0.25)
0.25 * 16 = 4(取整数部分为4,小数部分为0)
将得到的小数部分的十六进制数依次排列,得到0.625的十六进制表示为0.9(因为在十进制中10对应于十六进制的A,但是在这个上下文中,我们只取小数点后的部分,所以是9)。
所以,十进制小数0.625转换为十六进制是0.9。
这是一个简单快速的方法,适用于大多数常见的小数转换。如果需要更高的精度,可以继续乘以16的过程,直到小数部分为零或者达到所需的精度。

2.3非数值数据的表示

字符表示法

ASCII:使用7bit表示128个字符。几乎所有计算机都支持。注意:ASCII中的数字和数字本身不相等。用一个字节表示一个ASCII时,最高位置为0,即MSB=0,也可设置一个奇校验或者偶校验位

汉字表示法

GB2312国家标准:1981年, 16位表示,又称为国标码或国际交换码

一级常用汉字3755个,按汉语拼音排列;二级常用汉字3008个,按偏旁部首排列;非汉字字符682个

94*94矩阵形成区位码(行---区,列---位):一级汉字 16-55区 二级汉字 56-87区;三级汉字 1-9区   用户自定义10-15区

汉字机内码:计算机内存储和处理汉字时使用的编码,与区位码之间简单对应,即:汉字机内码=区位码+0xA0A0,与ASCII码的最高位为0不同,汉字的每字节最高位设置为1,即当MSB=1时,确定该字节为汉字机内码的一个字节。

字模码(字形码):用点阵表示的汉字自行代码,是汉字的输出形式。字模点阵信息量大,占用存储空间大,字模点阵智能用啦构成汉字库,不能用于机内存储。

2.4数据信息的校验

异或规则

识别奇数错,不能纠错,不保证正确,实现简单,编码效率高

 

识别奇数错,不能纠错,不保证正确,实现简单,编码效率高

2.5例题(下一篇博客里)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邶梓鸭~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值