计算机组成原理-数据的机器层次表示(2)

1.数值数据的表示

1.1计算机中数值数据

十进制(D)
二进制(B)
八进制(Q)
十六进制(H)
同时,在C语言中,八进制常以前缀0开始,十六进制常数常以前缀0x开始

1.2无符号数和带符号数

  • 无符号数:就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值
  • 带符号位:即有正负。用“+”、“—”号加绝对值表示数值的大小,用这种形式表示的数值在计算机中称为真值
  • 所谓机器数,就是将真值的符号数码化,约定二进制数的最高位为符号位,“0”表示正号,“1”表示负号

1.3原码表示法

在这里插入图片描述

1.4补码表示法

使符号位参加运算,从而简化加减法的规则;使减法运算转化成加法运算,从而简化机器的运算器电路
补码表示:

  • 符号位与原码相同
  • 数值部分与数的符号相关,对于正数,数值部分与真值形式相同,对于负数,其数值部分为真值形式按位取反,且在最低位+1
    在这里插入图片描述
    在这里插入图片描述

1.5反码表示法

  • 符号位表示方法与原码相同
  • 数值部分的表示与数的符号有关,对于正数,数值部分与真值形式相同,对于负数,数值部分为真值形式按位取反
    在这里插入图片描述

1.6:3种机器数比较

在这里插入图片描述
示例:
在这里插入图片描述

2.机器数的定点表示、浮点表示(重点!!!)

引子:
真值:100.25 =1100100.01B=64.4H=144.2Q
计算依据可为:
 x  x  x  x  x  x .  x  x  x  x
 64 32 8  4  2  1  0.5  0.25 0.125

计算机在进行算数运算时,需要指定小数点的位置。根据小数点的位置是否固定,在计算机中有两种数据格式:定点表示,浮点表示

2.1定点数

  • 定点表示法中约定:所有数据的小数点位置固定不变,通常把小数点位置固定不变。把小数点固定在有效数位的最前面或末尾,形成两类定点数

(1)定点小数

  • 定点小数:小数点的位置固定在最高有效数位之前,符号位之后。定点小数的小数点位置是隐含约定的,小数点并不需要真正的占据一个二进制位
    在这里插入图片描述
    设机器字长为n+1,Xs为符号位,剩下的n位为数值位
原码范围补码范围
-(1-2 ^-n)~1-2 ^-n-1~1-2 ^-n

(2)定点整数

  • 定点整数及纯整数,小数点位置隐含固定在最低有效数位之后
    在这里插入图片描述
    设机器字长为n+1,Xs为符号位,剩下的n位为数值位
原码范围补码范围
-(2 ^n-1)~2 ^n-1-2 ^n~2 ^n-1

2.2 浮点数

让小数点的位置根据需要而浮动,就是浮点数
N=M*r ^E
r是浮点数阶码的底,与尾数的基数相同,通常r=2;
E、M都是带符号的定点数,(E叫做阶码,M叫做尾数);尾数为纯小数,常用原码或补码表示;阶码为纯整数,常用移码或补码表示

(1)一般浮点形式

在这里插入图片描述
es为阶码的符号位,ms为尾数的符号位

规格化浮点数

为提高运算精度,需要充分利用尾数的有效位数,防止有许多无效0占用空间,如二进制数0.0001101可表示为0.001101 * 2^-1, 0.01101*2^-2, 0.1101 *2 ^-3,只有0.1101 *2 ^-3是规格化数

规格化的尾数M的绝对值必须在:1/r<=|M|<1
若r=2,则1/2<=|M|<1


数值真值原码
0.750.110.11
0.6250.1010.101
0.50.10.1
0.250.010.01
0.1250.0010.001

由上述数据可知,在尾数用原码表示时,规格化浮点数的尾数的最高位数总等于1,(0.1xxxxx)


数值真值补码
-0.875-0.1111.001
-0.625-0.1011.011
-0.50.11.1
-0.375-0.0111.101
-0.25-0.011.11
-1-1.0-1.0

由上述数据可知,在尾数用补码表示时:
1.正数:最高数为为1(0.1xxxxx)
2.负数:ms(补码的符号位)异或尾数的最高位==1
(异或):相同为0,不同为1

在这里插入图片描述

阶码的移码表示

用移码表示阶码:(n+1)位字长,一般在补码基础上进行+2^n操作

1.用移码方便比较大小
2.移码:补码的符号位取反
3.移码、补码中0的表示形式唯一

举例:设机器字长为8位,则应在补码的基础上+2^7=>移码
分析:当根据补码判断大小时正数与负数判断麻烦,而移码操作非常容易

数值补码移码
+1270111 11111111 1111
+1260111 11101111 1110
+10000 00011000 0001
00000 00001000 0000
-1261000 00010000 0001
-1271000 00000000 0000

(2)IEEE754标准

在这里插入图片描述
在这里插入图片描述

ms:符号位(1位)
E:阶码部分,用移码来表示(8位)
m:尾数部分,用原码来表示(23位)
一般考虑短浮点数,移码的偏置值为127

涉及两种问法:
(1)将十进制(100.25)转换成短浮点数格式
在这里插入图片描述

(2)把短浮点数(C1C90000H)转换成十进制数

在这里插入图片描述
(3)基本解题思路及注意事项:

(1)把十进制转换成二进制
(2)规格化二进制数(当取尾数时,不拿小数点前的1)
例如:1.1*2^2中,小数点前的1可省略,所以m中实际存储24位

(3)计算出阶码的移码【偏置值+真值】(可先在十进制中运算,再转换成二进制:127+6)
(4)以短浮点数格式存储该数(并转换为十六进制)

题目练习:

在这里插入图片描述
在这里插入图片描述

2.3 非数值数据的表示

ASII码用7位二进制表示一个字符,通常用1位来做奇偶校验位,用来检查错误

2.4 十进制数和数串的表示

BCD码:用4位二进制数来表示1位十进制数,称为二进制编码的十进制数
在这里插入图片描述
例如8421码:它是一种 有权码,设其各位的值为B3 B2 B1 B0,则他表示的十进制则为,8B3+4B2+2B1+1B0

2.6 数据校验码(重点)

数据校验码:是指那些能够发现错误或能够自动纠正错误的数据编码

码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数即为码距
例如:用四位二进制表示16种状态,中则有16个不同的码字,此时码距为1,即两个码字之间最少仅有一个二进制位不同(0000与0001)

1.奇偶校验码

实现方法:由若干位有效信息,再加上一个二进制位(校验位)组成校验码
奇校验:整个校验码中1的个数为奇数
偶校验:整个校验码中1的个数为偶数
例如:(发送方)采用奇校验:10110011->(接收方)001100011【可检验出差错】,若为00100011【不可检验出差错】

2.海明校验

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值