数据的表示方法与数据校验.ppt
《数据的表示方法与数据校验.ppt》由会员分享,可在线阅读,更多相关《数据的表示方法与数据校验.ppt(110页珍藏版)》请在三一办公上搜索。
1、数据的表示方法和数据校验,数据的表示方法及其转换,数据的表示方法及其转换,数据的表示方法及其转换,数 制 计算机中常用的几种进位数制,数 制,基 数,进位方法,基本符号,二进制 2 逢 2 进 1 0,1 八进制 8 逢 8 进 1 0,1,2,7 十进制 10 逢 10 进 1 0,1,2,9 十六进制 16 逢 16 进 1 0,1,9,A,B,F,数据的表示方法及其转换,计算机中采用二进制的原因 电路简单 工作可靠 简化运算 逻辑性强 可有效实现二值逻辑运算,数据的表示方法及其转换,不同数制间的数据转换 二进制数、八进制数与十六进制数之间的转换 将二进制数转换为十进制数 十进制数转换为二
2、进制数 十进制数转换成八进制数、十六进制数,数据的表示方法及其转换,数据符号的表示 数据的“真值”用“+”/“-”作为数符后跟数据的绝对值的数据表示形式 数据的“机器数”将数据的数符数字化形成的计算机内部的数据表示形式,与数值数据的编码方法紧密关联 在计算机中表示数符的一种方法是用一个二进制位来表示数符,通常取:0“+”1“”数据在计算机中表示时,不能省略数符,数据的表示方法及其转换,十进制数位的编码与运算 人们所习惯使用的数值数据是十进制形式的,而计算机中保存、处理数值数据所用的是二进制 在计算机中,整数是精确表达的,运算也不会必然地造成精度损失;而实数则不然,相应地,有:实数在计算机中执行
3、近似运算 采用相对精度制 十进制实数不能精确转换成二进制形式 这使得虽然一般应用问题中的“计算”不会产生不良影响,但对于要求按绝对精度进行实数“计算”的应用问题(如财务数据、工程数据)就难以适应 在现代计算机中,对数值数据的处理提供两种方式的系统机制:一种是直接二进制运算,另一种是为基于二进制运算器直接进行十进制运算提供基础性的支持,数据的表示方法及其转换,十进制数位的编码与运算 也就是说,如果应用问题中的“计算”要求与计算机中的处理一致,则计算机系统的硬件对之提供全面地系统支持;如果应用问题中的“计算”要求与计算机中的处理不一致,则硬件为相应要求的实现提供基础性支持,在此基础上通过软件的作用
4、可使问题要求得以满足 这样,十进制形式的数值数据在计算上进行处理时,硬件提供了两条途径:人们可将十进制数转换为二进制形式,在计算机内部存储、处理、传送,当要输出时,再将相应二进制结果转换为十进制,这是一般的做法 人们也可将十进制数在计算机内部以某种方式直接存储、处理、传送 应当注意的是,计算机是基于二进制实现数据处理的,数据的表示方法及其转换,十进制数位的编码与运算 为了达到上述目的,必须解决两个问题:十进制数的数位(数字)表示问题 一个完整的十进制数(包含任意个数位、可能带有数符、遵循十进制计数规则)的表示问题 十进制数位的编码与运算问题 如何在只能识别与处理二进制的计算机中有效地表示构成十
5、进制数的数位,使得相关的各种处理要求都能被高效可靠地实现 十进制数值的表示与存储问题 如何有效地解决十进制数值的数符表示与数值表示,使得相关的各种处理要求都能被高效可靠地实现用基 2 码表示一个十进制数位的问题 由于 23 10,因此,至少需要用 4 位基 2 码来编码一个十进制数位。当然,也可以用多于 4 位的基 2 码来编码一个十进制数位。通常采用的是 4 位基2 码编码方案,数据的表示方法及其转换,十进制数位的编码与运算 由于 4 位基 2 码可有16 中不同的组合,因此,要从中选出10 种来表示十进制数位的 09,有多种方案可供选择 有权码 表示一位十进制数的基 2 码的每一位有确定的
6、权。一般用8421码,其4个基2 码的权从高到低分别为 8、4、2、和 1 用0000,0001,1001分别表示0,1,9,每个数位内部满足二进制规则,故称这种编码为“以二进制编码的十进制(Binary Coded Decimal,简称BCD)码”,数据的表示方法及其转换,十进制数位的编码与运算 在计算机内部实现 BCD 码算术运算,要对运算结果进行修正,对加法运算的修正规则是:如果两个BCD码相加之和小于或等于(1001)2,即(9)10,不需要修正 若相加之和大于或等于(10)10,要进行加 6 修正,并向高位进位 另外几种有权码,如2421,5211,4311码(见表2.1),也是用4
7、位基2码表示一个十进制数位,但4位二进制码之间不符合二进制规则。这几种码有一个特点,即任何两个相加之和等于(9)10 的二进制码互为反码 例如,在2421码中,0(0000)与9(1111)、1(0001)与8(1110)、,互为反码,数据的表示方法及其转换,十进制数位的编码与运算,数据的表示方法及其转换,数据的表示方法及其转换,十进制数位的编码与运算 格雷码的编码规则:任何两个相邻编码只有一个二进制位不同,而其余三个二进制位相同。其优点是从一个编码变到下一个相邻编码时,只有一位发生变化,用它构成计数器时可得到更好的译码波形。格雷码的编码方案有多种,表2.2 给出两种常用的编码值,数据的表示方
8、法及其转换,数据的表示方法及其转换,十进制数位的编码与运算 也有用多于 4 位基 2 码,如用 5 位、7 位,甚至 10 位基 2 码,来表示一个十进制数位的方案。有些属于无权码,有些属于有权码 五中取二码(2 out of-5 code)用 5 位基 2 码,并且每个代码必须包含 2 个“1”和 3 个“0”,因此提供了一位(或奇数位)的校错能力 蠕变码(Creeping Code)也用 5 位基 2 码,是由一个“1”逐次移位扩展和紧缩而形成的,符合格雷码的编码规则 二元五进制码(Biquinary Code)用 7 位基 2 码,其位权从高向低分别为5043210,每个码包含 2 个“
9、1”和 5 个“0”,是有一位校错能力的有权码,数据的表示方法及其转换,数据的表示方法及其转换,数字串在计算机内的表示与存储 一个十进制数通常包含多位数字,由于不能硬性规定十进制数的长度,因而只能将其抽象为“数字串”在实践中,十进制数值可同时包含整数部分和小数部分,然而,这里仅考虑整数问题 十进制数串在计算机内主要有两种表示形式:字符串形式和压缩十进制数串 字符串形式 一个字节存放一个十进制数位或符号位,存放的是0 9 十个数字和正负号的ASCII编码值。在主存中,这样的一个十进制数占用连续的多个字节。因此,为了指明这样一个数,需要给出:该数在主存中的起始地址 数据所含符号个数(“串长”),数
10、据的表示方法及其转换,数字串在计算机内的表示与存储 十进制数可以是无符号的,也可以是带符号的。对于字符串形式的带符号十进制数,根据其数符处理方式的不同,可进一步划分其为“前分隔数字串”和“后嵌入数字串”前分隔数字串 让符号位占用单独一个字节并放在数字串的最前面。用字符“”(ASCII 码值为 2BH)表示正号,用字符“”(ASCII码值为2DH)表示负号。如+123 和 123 的存储表示分别为:,数据的表示方法及其转换,数字串在计算机内的表示与存储 后嵌入数字串 符号位不单独占用存储空间,而是把它嵌入到最低一位数字里边。其规则是,把负号变成十六进制的 40 并将其与最低数字位的值相加。如 1
11、23 和 123 的存储表示分别为:,注意:对前分隔或后嵌入数字串,都要给出它的首字符的主存地址和长度。长度为 0 的数字串的值为 0。对这两种方式表示的数进行算术运算是很不方便的,因为每个数字符占用一个字节,其低四位的值表示数值,而高四位的值在进行算术运算时不具有数值的意义,数据的表示方法及其转换,数字串在计算机内的表示与存储 压缩的十进制数字串形式 一个字节存放两个十进制的数位,它比字符串形式节省存储空间,又便于直接完成十进制数的加减运算 用压缩的十进制数串表示一个数,要占用主存连续的多个字节,每个数位占用半个字节(即 4 个二进制位),其值可用 BCD 码或数字符的ASCII 码的低 4
12、 位表示,符号位也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,如用 12 表示正号,用 13 表示负号。在这种表示中,规定数位加符号位之和必须为偶数,当其不为偶数时,应在最高数字位之前补一个 0。例如:,无符号数和有符号数,无符号数 在计算机中,参与运算的数有两大类:无符号数和有符号数 数据一般存放在计算机的寄存器中,通常,寄存器的位数与机器字长一致 在存放无符号数时,寄存器中的每一位都被用来表示数据的值 若用16位的寄存器来保存数据值,则有:当用来存放无符号数值时,其表示范围为065535 当用来存放有符号数值时,则其最大表示范围为-32768+32767,无
13、符号数和有符号数,无符号数和有符号数,无符号数和有符号数,无符号数和有符号数,无符号数和有符号数,有符号数及其编码 补码表示法 关于补码表示法,先讨论补码的导出及基本性质下面全面分析一下原码表示法进行加减运算的各种情况,无符号数和有符号数,有符号数及其编码 补码表示法 从上表可以看出,由于操作数用原码表示,使得在两操作数符号相异时,应作加运算时实际上却被改为减运算;本应作减运算实际上改为加运算 倘若能找到一种机器数的表示法,对它所表示的正负数,要求做加法就作加法,且结果为正确的机器数表示;对于做减法,减去一个负数等于加上与这个负数值对应的正数,减去一个正数,等于加上与这个正数值相等的负数。所以
14、如能解决这种机器数表示法所能表示的正负数之间的转换,那么减法也能转变为加法。另外,在运算中使符号位与数值部分一起参与运算从而简化了运算规则。这对于简化机器结构大有好处 人们引入数的补码表示,有效地解决了上述有关的机器执行有符号数加减法的复杂性问题,无符号数和有符号数,有符号数及其编码 补码表示法 先看两个十进制数的运算:如果假定使用两位十进制数运算器来机械性地完成上述加法运算,则在做时,多余的100 将会因为超出了运算器的位数和范围而被自动丢掉,结果变成了41。与的结果相同。在数学上可以用同余式表示:79(38)7962 41(mod 100)进一步地,可定义:38 62(mod 100)此时
15、称38 的补码(对模100 而言)是62。也就是说,一个负数用其补码代替,同样可得到正确的运算结果。即负数用补码表示时,可以把减法转化为加法,无符号数和有符号数,无符号数和有符号数,有符号数及其编码 补码表示法 整数补码的定义 对于n 位整数,其补码的定义为:,下面以小数为例,对补码的运算作些简要讨论,有关讨论同样也适应于整数:若X,Y,则 X 补=X,Y 补=Y,2 X+Y 0,相应地,有:若 1 X+Y 0,则根据定义,有:X+Y 补=X+Y=X 补+Y 补 若 2 X+Y 1,由于超出了小数的范围,我们说,加法运算产生了“正溢出”,无符号数和有符号数,有符号数及其编码 补码表示法 若 1
16、X,0Y-1(0X-1,Y 类似),则 X 补=X,Y 补=2+Y,1 X+Y-1,相应地,有:若 1 X+Y 0,则有:X+Y 补=X+Y=2+X+Y=X 补+Y 补 若 0 X+Y-1,则有:X+Y 补=X+Y=2+X+Y=X 补+Y 补 若 0X-1,0Y-1,则 X 补=2+X,Y 补=2+Y,0 X+Y-2,相应地,有:若0 X+Y-1,则有:X+Y 补=2+X+Y=2+X+2+Y=X 补+Y 补(mod 2),无符号数和有符号数,有符号数及其编码 补码表示法 若 1 X+Y-2,由于其绝对值超出了小数的范围,我们说,加法运算产生了“负溢出”综合以上讨论,我们可以得出结论:在无溢出(
17、正溢出/负溢出)的情况下:X+Y 补=X 补+Y 补(mod 2)数据的原码和补码间的转换 在已知一个有符号数的原码而想要将其转换为补码表示时,可行途径有:根据定义进行转换 原码 真值 补码 基于两者间的关联直接进行转换 数据原码与补码间的关联 由原码和补码的定义,有:若 1 X 0,则有 X 原=X 补=X,无符号数和有符号数,有符号数及其编码 补码表示法 若 0 X 1,设 X 原=1.X1X2 Xn,则有:X=0.X1X2 Xn,由补码的定义可知 X 补=2+(0.X1X2 Xn)=1+0.111 0.X1X2 Xn+0.00 01令 X=X1X2 Xn,NOT X 为X1X2 Xn 按
18、位对应取反(即10,0 1)所得数据,则 NOT X=0.111 0.X1X2 Xn X 补=1+0.NOT X+0.00 01=1.NOT X+0.00 01,由此可知,对于正数,原码与补码是相同的;对于负数,原码与补码之间的转换规则为:符号位不变,数值部分求反加(加在最低位),无符号数和有符号数,有符号数及其编码 补码表示法 在已知 X 补 的情况下,直接求取 X 补 假设有 X补=X0.X1X2 Xn,X0 为补码数的符号位,则有:若 1 X 0,则X0=0,所以X=X补=0.X1X2 Xn 0X=0.X1X2 Xn 0X 补=2+(0.X1X2 Xn)=1.NOT X+0.00 01=
19、NOT X0.NOT X+0.00 01其中,NOT X0 是补码数的符号位X0 的反。这就是说,当 X大于或等于 0 时,已知X补,要求 X补 时,只需将X补 连同符号位一起取反,再加 1(加在最低位)即可。,无符号数和有符号数,有符号数及其编码 补码表示法 若 0 X 1,则X0=1,X 补=2+X,故有:X=X 补 2=1.X1X2 Xn 2=0.X1X2 Xn 1X=1 0.X1X2 Xn=0.NOT X+0.00 01=NOT X0.NOT X+0.00 01 0X 补=NOT X0.NOT X+0.00 01,综合以上分析,可得知:已知 X 补 求X 补 的方法是:将 X 补 逐位
20、取反后,在最低位加1 X 补 被称为 X 补 的机器负数,无符号数和有符号数,有符号数及其编码 补码表示法 在已知 X 补 和 Y 补 时,求 X Y 补 的方法是:X Y 补=X+(Y)补=X 补+Y 补=X 补 Y 补 这就是说,在补码情况下,减法运算可基于加法运算部件简单实现 补码具有以下基本性质:性质1:0 的补码是唯一的+0 补=0.000 0 补=1.111+0.001=0.000(mod 2),无符号数和有符号数,有符号数及其编码 补码表示法 性质2:X 补 与 X 补 是等价的基于性质1,有 X X补=X 补+X 补=0,有:X 补=X 补 性质3:已知 X 补 求 X 的一般
21、规则是:X=X 补 2X0,其中X0 是 X 补 的数符位设 X 补=X0.X1X2 Xn 若 1 X 0,则 X 补=X 0,X0=0;若 0 X 1,则 2 X 补=2+X 1,X0=1;因此,X 补=2 X0+X X=X 补 2X0=X0.X1X2 Xn 2X0=0.X1X2 Xn X0,无符号数和有符号数,有符号数及其编码 补码表示法 性质4:已知 X 补 求 X/2 补 的一般规则是:结果的数符与操作数 X 补 的数符一致,结果的数值部分为操作数 X 补 的数值连同符号位一起右移一位的结果 由性质3可知,已知 X 补,X=0.X1X2 Xn X0 因此,X/2=0.X1X2 Xn/2
22、 X0/2=0.X1X2 Xn/2+X0 2X0=(0.X1X2 Xn+X0)/2X0=0.0 X1X2 Xn+X0/2X0=0.X0 X1X2 XnX0 比较性质3中的X 和性质4 中的X/2 可得 X/2 补=X0.X0 X1X2 Xn,无符号数和有符号数,无符号数和有符号数,无符号数和有符号数,有符号数及其编码 模4 补码(变形补码)模4补码除了模数(及与模数紧密关联的特性)与模2补码不同外,是没有什么区别的。因此,前面讲过的模2补码性质及码制之间转换均可用于模4补码 可以看出,模补码的真值范围是模补码的一倍,假若仍表示X的真值,小数点左边就一定相同。基于此可以说,模4补码是有两个符号位
23、的补码 称为变形补码 由于模补码在表示时,两个符号位一定相同,而当两个同号数相加,且结果或者结果时(但仍在之间),两个符号位就一定不相同。利用这个特点可判断定点数加减运算中的溢出 应注意,在计算机中存储和传送数据时用一位符号位,而在运算时数据采用两位符号位表示,无符号数和有符号数,无符号数和有符号数,无符号数和有符号数,有符号数及其编码 反码、补码转换为原码 将反码表示的数据转换成原码 转换方法:符号位保持不变,正数的数值部分不变,负数的数值部分取反例:设 X 反=0.1010,则 X 原=0.1010,X=+0.1010 设 X 反=1.1010,则 X 原=1.0101,X=0.0101
24、将补码表示的数据转换成原码 转换方法:符号位保持不变,正数的数值部分不变,负数的数值部分取反后在最低位加1例:设 X 补=0.1010,则 X 原=0.1010,X=+0.1010 设 X 补=1.1010,则 X 原=1.0110,X=0.0110,无符号数和有符号数,有符号数及其编码 移码表示法 移码的定义 如果整数X 的字长为n+1位(包括1位符号位),则其移码的定义为:X 移=2n+X 2nX2n(mod 2n+1)(2.9)例:设 n=7,则有:X 移=128+X 128X128(mod 128)此时的移码实质上是余128码,无符号数和有符号数,无符号数和有符号数,有符号数及其编码
25、移码表示法 移码的性质 移码表示法具有下列主要性质:性质1:移码数符位的特殊性 移码的数符与原码、补码的数符相反。对于同一个数据X,X 移 与 X 原、X 补 的数符位的值相反 性质2:移码与补码的关系 对于同一个数,若将其补码表示的数符位取反,即得到其移码表示,反之亦然。即若有 X 移=Xn.Xn-1Xn-2 X0,则相应地有 X 补=NOT Xn.Xn-1Xn-2 X0 性质3:移码加减法运算需要对结果进行修正 已知两个n+1 位(含1位符号位)的数X、Y 得移码表示分别为 X 移 和 Y 移,相应地,有:X+Y 移=X 移+Y 移+2n X Y 移=X 移 Y 移+2n,无符号数和有符号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 表示 方法 校验
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5270461.html