计算机组成原理复习笔记(2)

本文介绍了数据在机器级别的表示,包括不同进制间的转换,定点数(如原码、补码、反码和移码)的概念及其应用,以及浮点数的表示方法,强调了IEEE-754标准在浮点数编码中的重要性。此外,还讨论了数据校验码,如奇偶校验码、海明码和CRC码,及其在错误检测和纠正中的作用。
摘要由CSDN通过智能技术生成

复习,,预习!!

注:本章内容不作考试重点,只罗列部分知识点及相关概念,具体重点和知识点以课本为主。

二.数据的机器级表示

1.R进制数与十进制数的转换

①R进制转十进制:按权展开

例:

 ②十进制数转R进制数

③二、八、十六进制数相互转换

 

2.定点数与浮点数

定点表示:表示定点小数和定点整数。

                对于定点小数:小数点固定在数的最左边,一般用来表示浮点数的尾数部分

                对于定点整数:小数点固定在数的最右边,因此可以用定点整数来表示整数

定点数的编码表示:(原码、补码、反码、移码)

原码:最高位是符号位(正数0,负数1),数值部分用真值的绝对值表示

补码:正数的补码等于其本身,负数的补码等于反码+1

补码的来源------模运算

一个负数的补码等于模数减去该负数的绝对值,当X<0时,[X]=M-|X|=M+X,(这里的M表示模数,[X]表示对X求补码)。
对于某一个确定的模,减去一个数,等于加上负数的补码,这使得计算机中的加减法得到统一,可以对比模12的时钟,eg. -8=4(mod12)相当于减8等于加4。
求补码的规律,根据上面的公式可以推出来,无论X的正负,-X的补码恰好是X按位取反再加一。比如8位数X=10000001(补码) -X=01111110+1=01111111

反码:正数的反码等于其本身,负数的反码等于原码除符号按位求反,也就是补码-1;

移码:补码符号位取反,用于表示浮点数的阶码

例:

x=+0.1011, x[原]=0.1011,x[补]=0.1011,x[反]=0.1011

x=-0.1011, x[原]=1.1011,x[补]=1.0101,x[反]=1.0100

x=+1011,x[原]=01011,x[补]=01011,x[反]=01011,x[移]=11011

 x=-1011,x[原]=11011,x[补]=10101,x[反]=10100,x[移]=00101

浮点表示:对于任何一个二进制数X,可以表示成如下形式 

        S:取值为0或1,决定X的符号

        M: 一个二进制定点小数,称为X的尾数

        E:一个二进制定点整数,成为X的阶数(指数)

        R:基数,可以取值为2、4、16等

在R一定的情况下,尾数M的位数反应X的有效位数,

浮点数取值范围(m为指数的位数,n为尾数的位数,基数为2)

对于浮点数不明白的同学可以看下面的博客

浮点数的表示 —— 基本格式、规格化、表示范围_规格化浮点数_starter_zheng的博客-CSDN博客

注意考试重点:IEEE-754单精度、双精度浮点数格式,能够根据给出的真实值能求出IEEE格式的浮点数

3.数据校验码

码距:同一编码中,任意两个合法编码之间不同二进制数位数的最小值

码距与检错或纠错能力之间的关系:

        码距>=e+1;        可检测e个错误

        码距>=2t+1;        可纠正t个错误

        码距>=e+t+1:        可纠正t个错误,同时检测e个错误(e>=t>=1)

①奇偶校验码

奇校验:原始码流+校验位 总共有奇数个1

偶校验:原始码流+校验位 总共有偶数个1

特点:它的校验位只有一位,要么是0,要么是1。并且它的校验码还可以放在码流的前面

②海明校验码

以下内容转载自:http://www.cnblogs.com/scrutable/p/6052127.html

  海明码(也叫汉明码)具有一位纠错能力。本文以1010110这个二进制数为例解释海明码的编码和校验方法。

  编码

  确定校验码的位数x

  设数据有n位,校验码有x位。则校验码一共有2x种取值方式。其中需要一种取值方式表示数据正确,剩下2x-1种取值方式表示有一位数据出错。因为编码后的二进制串有n+x位,因此x应该满足

2^x-1 ≥ n+x   

  使不等式成立的x的最小值就是校验码的位数。在本例中,n=7,解得x=4。

  确定校验码的位置

  校验码在二进制串中的位置为2的整数幂。剩下的位置为数据。如图所示。

位置1234567891011
内容x1x21x3010x4110

  求出校验位的值

  以求x2的值为例。为了直观,将表格中的位置用二进制表示。

位置00010010001101000101011001111000100110101011
内容x1x21x3010x4110

  为了求出x2,要使所有位置的第二位是1的数据(即形如**1*的位置的数据)的异或值为0。即x2^1^1^0^1^0 = 0。因此x2 = 1。

  同理可得x1 = 0, x3 = 1, x4 = 0。

位置00010010001101000101011001111000100110101011
内容01110100110

  因此1010110的海明码为01110100110。

  校验

  假设位置为1011的数据由0变成了1,校验过程为:

  将所有位置形如***1, **1*, *1**, 1***的数据分别异或。

  ***1: 0^1^0^0^1^1 = 1

  **1*: 1^1^1^0^1^1 = 1

  *1**: 1^0^1^0 = 0 

  1***: 0^1^1^1 = 1

  以上四组中,如果一组异或值为1,说明该组中有数据出错了。***1 **1* 1***的异或都为1,说明出错数据的位置为1011。

③循环冗余校验码

循环冗余校验码广泛应用于数据通信领域和磁介质的存储系统中,它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式如下:

循环冗余校验码有两部分组成:数据为、校验位。若数据位占k位,则校验位占n-k位。n为CRC码的字长。检验码越长校验能力就会越强。在CRC编码是,采用的是模2运算,模2运算加减运算的规则是按位运算,不发生借位和进位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值