数据存储与运算

上传人:德****1 文档编号:1088208 上传时间:2017-05-27 格式:PPTX 页数:75 大小:2.02MB
返回 下载 相关 举报
数据存储与运算_第1页
第1页 / 共75页
数据存储与运算_第2页
第2页 / 共75页
数据存储与运算_第3页
第3页 / 共75页
数据存储与运算_第4页
第4页 / 共75页
数据存储与运算_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《数据存储与运算》由会员分享,可在线阅读,更多相关《数据存储与运算(75页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据的存储与运算,张莉娜软件工程系,2.1 计算机中的数制2.2 计算机的存储与表示2.3 数据运算,主要内容,2.1 计算机中的数制,在日常生活中经常要用到各种数制,最常用的是我们所熟悉的十进制记数法。除了十进制外,还有许多其他的记数方法。例如,12个月是1年,用的是十二进制; 60分钟是1个小时,用的是六十进制; 7天是1个星期,用的是七进制。这些记数方法都有其共同的特点和运算规律。在计算机领域常见的有二进制、八进制、十六进制等。,2.1.1 进位记数制 所谓进位记数制是指按进位的原则进行记数。常用的进位记数制有十进制、二进制、八进制、十六进制等。 下面首先介绍几个概念: 基数:

2、某种数制中使用的数字的个数。例如: 十进制数的基数是10,二进制数的基数是2,八进制数的基数是8,十六进制数的基数是16。,数位: 在某种数制中,数字在一个数中所处的位置称为数位。例如十进制数中包含的个位(0)、十位(1)、百位(2)、千位(3)等。位值: 位值也叫权(或者位权),任何一个数都是由一串数字(符号)表示的,其中每一位所表示的值除其本身的数值外,还与它所处的位置有关,由位置决定的值就叫权。不同进制中的权是不一样的,例如,十进制数中的100 、101、102,二进制数中的20、21、22,八进制数中的80、81、82,十六进制中的160、161、162。,例 2-1 任意给定一个二进

3、制数(11011.101)2,这个数的各位权表示如下: 数 1 1 0 1 1 1 0 1数位 4 3 2 1 0 -1 -2 -3权 24 23 22 21 20 2-1 2-2 2-3即(11011.101)2 =124+123+022+121+120+12-1+02-2+12-3由此我们可以得出一个结论: 对于M位进制,整数的权为Mi,从右向左,i=0,1,2,3; 小数的权为M-i,从左向右,i=1,2,3。,表 2-1 常用进制及其区别,2.1.2 数制之间的转换为了书写、阅读方便,用户在编程时一般使用八进制、十进制、十六进制的形式表示一个数,而计算机中存储和处理的数据都为二进制数,

4、因此各种进制的数之间经常需要转换。 下面给出各种数制之间的转换方法。1. 将R进制转换为十进制将R进制数转换为等值的十进制数,只要将R进制数按位权展开,再按十进制运算规则运算即可。,例 2-2 将二进制数(11011.101)2转换为十进制数。 (11011.101)2 =124+123+022+121+120+12-1+02-2+12-3 =(27.875)10例 2-3 将八进制数(1507)8转换为十进制。 (1507)8 =183+582+081+780 =512+320+0+7 =(839)10例 2-4 将十六进制数(2AF5)16转换为十进制数。 (2AF5)16 =2163+A

5、162+F161+5160 =8192+2560+240+5 =(10997)10,2.将十进制转换为R进制将十进制数转换成R进制数,需要将十进制数的整数部分和小数部分分别进行转换,然后合并。1) 整数部分的转换十进制数整数转换成R进制数,采用逐次除以基数R取余数的方法(简称为“除基取余”)。其步骤如下: (1) 将给定的十进制整数除以R,余数作为R进制数的最低位。 (2) 将前一步的商再除以R,余数作为次低位。 (3) 重复(2)步骤,记下余数,直至最后商为0,最后的余数即为R进制的最高位。,2) 小数部分的转换十进制数纯小数转换成R进制数,采用将小数部分逐次乘以基数R取整数的方法(简称为“

6、乘基取整”)。其步骤如下: (1) 将给定的十进制数的纯小数部分乘以R,取乘积的整数部分作为R进制的最高位。 (2) 将前一步的乘积的小数部分继续乘以R,取乘积的整数部分作为R进制的次高位。 (3) 重复(2)步骤,记下整数,直至最后乘积为0或达到一定的精度为止。注意: 所有的十进制整数都能准确地转换成二进制整数,而十进制小数不一定能精确地转换成二进制小数。,例 2-5 把十进制数(69.8125)10转换为二进制数。 解: 方法: 整数部分除2取余,小数部分乘2取整。过程如下:,例2-6 把十进制数(69.8125)10转换为八进制数。解: 方法: 整数部分除8取余,小数部分乘8取整。过程如

7、下:,3.非十进制间的转换通常,可以先将被转换数转换为相应的十进制数,然后再将十进制数转换为其他进制数。例如,( 19 )16= ( 25 )10= (11001 )2,(11001 )2= ( 25 )10 = ( 31 )8。这是最基本的转换方法。另外,还可以利用二进制、八进制和十六进制之间的特殊关系直接进行转换。,下面对非十进制之间的相互转换方式进行举例介绍。1) 二进制数转换为八进制数方法:从小数点开始每3位分组,不足补0,然后按照表2-3的关系进行转换。例2-8 把二进制数(11110010.1110011)2 转换成八进制数。解: 分组: 11 110 010. 111 001 1

8、不足补0: 011 110 010. 111 001 100转换: 3 6 2. 7 1 4则: (11110010.1110011)2=(362.714)8,2) 八进制数转换为二进制数方法: 把每一位写成3位的二进制数,然后按照表2-3的关系进行转换。例2-9 把八进制数(2376.14)8 转换成二进制数。 解:八进制: 2 3 7 6. 1 4二进制: 010 011 111 110 .001 100则: (2376.14)8=(10011111110.0011)2,3) 二进制数转换为十六进制数方法: 从小数点开始每4位分组,不足补0,然后按照表23的关系进行转换。例2-10 把二进

9、制数(110101011101001.011)2 转换成十六进制数。 解:分组: 110 1010 1110 1001.011不足补0: 0110 1010 1110 1001.0110转换: 6 A E 9. 6则: (110101011101001.011 )2=(6AE9.6)16,4) 十六进制数转换为二进制数方法: 把每一位写成4位的二进制数,然后按照表2-3的关系进行转换。例2-11 把十六进制数(6AE9.6)16转换成二进制数。 解:十六进制数转换为二进制数: (2376.14)8=(10011111110.0011)2二进制数转换为十六进制数: (10011111110.00

10、11)2=(4FE.3)16则: (2376.14)8=(4FE.3)16,2.2数据的存储与表示 计算机中常用的数据类型有多种,如数值型数字、文本符号、图像、音频及视频等,如图2-1所示。,图2-1,计算机数据用二进制表示,所以其计量单位与常用的十进制不同。计算机数据的计量单位有位、字节、字等。位(bit),又叫做比特,记为b,就是一位二进制数据,是计算机中数据的最小单位。字节(byte),记为B,1B由8b组成,是计算机中数据的基本存储单位。字(word),一个字由两个以上的字节组成,不同类型的计算机有不同的字长。计算机数据中KB、MB、GB的计量换算关系如下:1B=8b1KB=210B

11、=1024B1MB=210*210B =1024KB1GB=210*210*210B =1024MB,2.2.1 数字 常用的数字类型可以分为整数和实数。为了有效地利用计算机的存储空间,无符号整数和有符号整数在计算机中的存储与表示方式是不同的。1. 无符号整数的存储与表示无符号整数就是没有符号的整数(0+)。1) 存储无符号整数在计算机中存储无符号整数需要两个步骤。 (1) 首先将整数变成二进制数。(2) 如果二进制位数不足N位,则在二进制整数的左边补0,使它的总位数为N位。,例2-13 将7存储在8位存储单元中。解: 首先将该整数转换为(111)2;然后左侧补5个0使总位数为8位,得到(00

12、000111)2;再将该整数保存在存储单元中。注意,右下角的2用于强调该整数是二进制的,并不存储在计算机中。例2-14 将258存储在16位存储单元中。解: 首先把整数转换为二进制(100000010)2;然后左侧补7个0使总的位数满足16位的要求,得到(0000000100000010)2;再将该整数保存在存储单元中。,2) 译解无符号整数 输出设备译解计算机内存中位模式的无符号整数并将之转换为一个十进制数,这个过程称为无符号整数的译解。例2-15 当译解作为无符号整数保存在内存中的位串00101011时,从输出设备输出值是多少?解: 二进制整数转换为十进制无符号整数: (00101011)

13、2= (43)10则从输出设备输出值为43。,3)无符号整数的溢出因为大小(存储单元中位的数量)的限制,可以表示的整数范围是有限的。当超出存储范围的最大整数时,会发生溢出。如果用4位空间存储一个无符号整数,下图显示了假如存储大于15 (24-1)的整数所发生溢出的情况。,4) 无符号整数的应用 因为不必存储整数的符号,所有分配单元都可以用来存储数字,所以无符号整数表示法可以提高存储的效率。只要没有负整数的应用,就可以使用无符号整数表示法。常见的应用有计数、寻址等。,2. 有符号整数的存储与表示 为了区别符号和数值,同时又便于计算,人们对有符号整数进行了合理的编码。常见的有原码、反码和补码三种编

14、码方式。原码 原码的表示方法比较简单,用首位表示符号(0表示正号、1表示负号),余下各位表示数值。例2-16 假设字长是8位,写出+68和-68的原码表示。解: +68的原码可表示为: (01000100)2-68的原码可表示为: (11000100)2,2) 反码 反码的编码方法也比较简单,正数的反码和原码相同,负数的反码是在其原码基础上,除符号位外按位取反。例2-17 假设字长是8位,写出+68和-68的反码表示。解: +68的反码可表示为: (01000100)2-68的反码可表示为: (10111011)2同样,0的反码也有两个,即(00000000)2和(11111111)2。,3)

15、 补码补码在原码和反码的基础上得到改进,它解决了原码和反码的缺点,是现在计算机中普遍采用的有符号整数表示方法。补码运算的方法有两种。(1) 按位取反,并在最低位加1。(2) 先对二进制整数序列从右边复制,直到有1被复制,然后对其余各位取反。,例2-18 取整数00110110的补码。解: 原模式: 00110110进行补码运算: 11001010例2-19 对整数00110110进行两次补码运算。解: 原模式: 00110110第一次补码运算: 11001010第二次补码运算: 00110110可见,对一个整数进行两次补码运算,就可以得到原先的整数。,4) 以二进制补码格式存储整数这一方法中,

16、无符号整数的有效范围(02n-1)被分为2个相等的子范围。第1个子范围用来表示非负整数,第2个子范围用来表示负整数。例如,N为4,该范围是00001111。这个范围被分为两半,00000111以及10001111。这两半按照左负右正的常规互相交换,赋值给负和非负整数的位模式,如图2-3所示。,图2-3 二进制补码表示法,以二进制补码格式存储整数,遵循以下两个步骤。第一步: 将整数变为位的二进制数。第二步: 如果整数是正数或零,以其原样存储,如果是负数,取其补码存储。例2-21 用二进制补码表示法将整数-29存储在8位存储单元中。解: 该整数是负数,因此在转换成二进制后计算机对其进行二进制补码运算。把29变为8位的二进制: 00011101进行补码运算: 11100011即(-29)10 = (11100011)补。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号