计算机组成原理(2)

计算机组成原理

第二章 数据的机器层次表示

1、数值数据的表示

 十进制(D) 二进制(B) 八进制(Q) 十六进制(H)

1.1原码表示法:

纯小数:Xs.X1X2....Xn 正数Xs=0;负数Xs=1;数值部分保持不变

纯整数:XsX1X2....Xn 正数Xs=0;负数Xs=1;数值部分保持不变(,)

真值0:[+0]=00000;[-0]=10000;

1.2补码表示法

纯小数:Xs.X1X2....Xn 正数Xs=0;负数Xs=1;正数数值部分保持不变,负数数值部分按位取反,最低位+1;

纯整数:XsX1X2....Xn 正数Xs=0;负数Xs=1;正数数值部分保持不变,负数数值部分按位取反,最低位+1;

真值0:[+0]=[-0]=00000;

模:M=2*(n+1)(字长为2n+1)

比较:补码正、负不对称,多了一个(-2*n)或(-1)

1.3反码表示法

纯小数:Xs.X1X2....Xn 正数Xs=0;负数Xs=1;正数数值部分保持不变,负数数值部分按位取反;

纯整数:XsX1X2....Xn 正数Xs=0;负数Xs=1;正数数值部分保持不变,负数数值部分按位取反;

真值0:[+0]=00000;[-0]=11111;

1.4原码转换为反码

(1)符号位不变,数值部分全部取反,然后最低位+1;

(2)从低到高,尾数的第一个1以及其右边的0不变,符号位不变,其他取反

2.机器数的定点表示与浮点表示

2.1定点表示法

2.1.1定点小数:小数点的位置固定在最高有效位之前,符号数之后。小数点不占用二进制位。eg:Xs.X1X2X3..Xn

X(最大正数)=0.111111...=(1-2^-n)

X(最小正数)=0.00000...1=2^-n

X(绝对值最大负数原码表示)=1.1111....=-(1-2^-n)

X(绝对值最大负数属补码表示)=-1

总结:机器字长有N+1位时,原码定点小数范围为-(1-2^-n)~(1-2^-n);补码定点小数范围为-1~(1-2^-n)

2.1.2定点整数:小数点位置隐含固定在最低有效位之后。eg:XsX1X2....Xn[.]

X(最大正数)=011111.....=2^(n)-1

X(最小正数)=00000...1=1

X(绝对值最大负数原码表示)=11111...=1-2^n

X(绝对值最大负数补码表示)=111...=-2^n

总结:机器字长有N+1位时,原码定点小数范围为-(2^n-1)~(2^n-1);补码定点小数范围为-2^n~(2^n-1)

2.2浮点表示法

2.2.1浮点数的表示形式

{[Es|E][Ms|M]}

Es:长度为1,为阶码部分的符号位

E:长度为k,为阶码部分的数值部分

Ms:长度为1,为尾数部分的符号位

M:长度为n,为尾数部分的数值位

浮点数:N=M*r^E(r为浮点数阶码的底,一般为2,阶码的大小反映了小数点在浮点数中的实际位置)

X(最大正数)=011111...011111...=(1-2^-n)*2^(2^k-1)

X(最小正数)=10000...100.....1=2^-n*2^(-2^K)

X(绝对值最大负数)=011111...10000000...=-1*2^(2^k-1)[【不太明白为什么不分类]】

2.2.2规格化浮点数

规定尾数的最高数位必须是一个有效值。

规格化浮点数的尾数M的绝对值要求:1/r<=|M|<1;

(1)原码表示时,要求尾数的最高尾数为1.1/r<=|M|<1;

(2)补码表示时,要求尾数最高尾数与符号位不同并且1/r<=|M|<1;

(3)规格化的最小正数:0.100000=2^(-1)*2^(-2^k)

2.2.3移码表示法

移码:称为增码或偏码。移码就是在真值X上增加一个常数,这个常数被称为偏置值。相当于真值X在数轴上偏移了若干个单位。

表示为[X]移=偏置值+X。偏置值一般为2^n;对于机器字长为n+1来说

移码的特点:

1).最高位0表示负,1表示正。

2)真值0表示唯一。[+0]=[-0]=10000000。

3)移码可视为无符号数。

4)同一数值的移码和补码仅符号位相反。

2.2.4标准浮点数

1)分类:短浮点数、长浮点数、临时浮点数

2)短浮点数称为i单精度浮点数,长浮点数称为双精度浮点数。都采用隐含尾数最高数位的方法(为什么)。临时浮点数成为扩展精度浮点数,没有隐含位。

3)尾数用原码表示,阶码用移码表示。

4)短浮点数的尾数为23位(实际24),长浮点数为52位。

5)十进制与短浮点数格式之间的相互转换:

    十进制变为二进制——规格化二进制——阶码由规格化二进制得来,计算阶码的移码——分别写出尾数符号位,阶码,尾数——对应的16进制转换

ps:记得隐含掉的“1”的问题。

2.3定点表示VS 浮点表示

1)数值的表示范围:浮点>定点

2)精度:浮点数降低了

3)数的运算:浮点变复杂了

4)溢出处理:定点更容易溢出

2.4定点机VS浮点机

1)定点机:以定点运算为主,浮点运算通过软件实现

2)定点机+浮点运算部件:微、小型计算机的配置

3)浮点机:具有浮点运算指令和基本浮点运算器。大、中型计算机。

3.非数值数据的表示

3.1字符串存放

1)向量法:物理位置必须相邻,实际存放的是ASCII值,不方便增删改查。

2)串表法:每个字符代码后面都有链接字,物理位置不必相邻。但是主存利用率不高。

3.2汉字的表示

1)汉字国标码:每个汉字、图形用两个字节,每个字节只用低7位进行编码。

2)汉字区位码:常用的6763分为94个区,每个区94个汉字(位)。区、位组成二维数组。区位码字长为4位,前两位为区号,后两位为位号。

国标码=区位码(16进制)+2020H

3)汉字机内码:两个字长的代码。汉字机内码=汉字国标码+8080H

4)汉字字形码:确定一个汉字字形点阵的代码(又称汉字字模码、汉字输入码)笔画所到之处为1,否则为0。点阵越密集,汉字质量越高。

3.3统一代码(unicode):

1)定义:有足够能力来表达任意一种语言使用的所有符号

2)编码方式:用一个16位数来表示unicode中每个符号。符号集被称为基本多语言平面(BMP)。

3)实现方式:unicode实现方式不同于编码方式。unicode编码确定,但是实现方式不同。

4.十进制数和数串的表示

4.1十进制编码:用4位二进制数来表示一位二进制数(称为BCD码)

ps:因为可以从16种代码中选出10种来,所以称为多种BCD编码。

4.1.18421码:称为NBCD码。其中1010~1111为非法码。

4.1.2   2421码:

1)位权从高到低一次为2421.

2)9的自补码:只要将自身按位取反,就能得到该数对9的自补2421码。

3)0101~1010为非法码。

4.1.3余3码:

1)无权码

2)9的自补码。

3)0000~0010、1101~1111为非法码。

4.1.4格雷码

1)无权码

2)相邻状态变化时,仅有一位二进制位不同。

3)循环特性。

4)6个代码(不确定)为非法码。

4.2十进制数

4.2.1非压缩的十进制数:一个字节可以存放一个十进制或者符号的ASCII码。

根据符号位所处位置,分为以下两类:

1)前分隔式数字串:符号位单独占用一个字节,放在数值位之前。数值存放用对应的ASCII值。符号位:正数_2BH,负数_2DH.

2)后嵌入式字符串:符号位不单独占用一个字节。,而是嵌入到数值最后一位。正数不变,符号最后一位加40H。

4.2.2压缩十进制数

一个字存放两位BCD码的二进制数。

符号位也占用半个字节,并存放在最低位后面。用CH表示正数。DH表示负数。

规定:数的个数+符号位之和必须为偶数。

当为奇数时,最高位补0H,即第一个字节高半位为0000.

5.不同类型的数据表示举例

1)无符号整数

2)带符号整数

3)浮点数

4)指针数据

5)串数据

6)BCD数

6.数据校验码

6.1基本概念:

数据校验码:那些能够发现错误或能够自动纠正错误的数据编码,又称之为“检错纠错编码”。

码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数。

原理:待理解(!)

相关性:码距越大,检错能力越强,纠错能力《=检错能力。

6.2奇偶校验码

1)作用:能监测出一位或者奇数位的错误

2)组成:奇偶校验码(N+1位)=N位有效信息+1位校验位

3)分类:奇校验:整个校验码中1的个数为奇数。偶检验:整个校验码中1的个数为偶数。

6.3简单奇偶校验码

1)奇形成=1:D7~D0有偶数个1

2)奇形成=0:D7~D0有奇数个1(偶形成是奇形成取反)

3)奇校验出错:D校验与D7~D1异或整体取反(偶校验出错是奇校验出错取反)

6.4交叉奇偶校验(横纵校验)

可以发现两位同时出错

6.5海明校验码

发现一位出错,并能找到出错位置并自动纠错,发现两位错误编码

校验位的位数K和信息位的位数N应满足下列关系:2K-1 ≥N+K+1。

6.6循环冗余校验码(CRC码)

除法原理

K的求法(?)

求解步骤:















  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值