数据表示和数制

上传人:ji****72 文档编号:50956537 上传时间:2018-08-11 格式:PPT 页数:25 大小:181.50KB
返回 下载 相关 举报
数据表示和数制_第1页
第1页 / 共25页
数据表示和数制_第2页
第2页 / 共25页
数据表示和数制_第3页
第3页 / 共25页
数据表示和数制_第4页
第4页 / 共25页
数据表示和数制_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《数据表示和数制》由会员分享,可在线阅读,更多相关《数据表示和数制(25页珍藏版)》请在金锄头文库上搜索。

1、数据表示和数制一、数制数制是指用一组固定的数字和一套统一的规则来表 示数目的方法。其中两个最基本的概念是:基数(Radix):一个计数制所包含的数字符号的个数称 为该数制的基数,通常用R表示,如二进制的R为2。位值(权):任何一个R进制的数都是由一串数码表示的 ,其中每一位数码所表示的实际值大小,除数码本身的 数值外,还与它所处的位置有关,由位置决定的值就叫 位值(或称权,Positional Value)。位值用基数R的i次 幂(Ri)表示。十进制,它由0、1、2、3、4、5、6、7、8、9共10个数字符号组成, 数字符号在不同的数位上表示不同的数值,每个数位均逢十进一。十进制数的基数为10

2、,位权为10的指数次幂。二进制数使用“0”和“1”这两个数字符号,遵循“逢二进一”的原则。例如:0+0=0;1+0=0+1=1;1+1=10;1+10=11;1+11=100。二进制数的基数为2,位权为2的指数次幂。八进制数的数字符号有8个:0、1、2、3、4、5、6、7,“逢八进一”,它的基数为8,位权为8的指数次幂。十六进制数的示数符号有16个:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,“逢十六进一”,它的基数为16,位权为16的指数次幂。八进制数和十六进制数均是为了方便书写和阅读时使用的,在计算机内部实际上所有的数均是二进制数。表1.1给出了十进制数字0-15所对应

3、的二、八、十六进制数。表1.1 十进制数与二、八、十六进制数对照表 十进制二进制 八进制 十六进制十进制二进制 八进制 十六进制二、数制之间的转换通常人们习惯在一个数的后面加上一个字母B、D、H、O来区分其前面表示的一个数用的是什么数制。例如: 101.01B表示二进制数101.01;A2BH表示十六进制数A2B等。B:二进制D:十进制H:十六进制O:八进制(1) 非十进制数转换成十进制数利用按权展开的方法,可以将任意数制的一 个数转换成十进制数。例如:将二进制01000001转换成十进制数如 下:01000001B=027+126+025+024+023+022+021+120=64+1=6

4、5D。假定要将125.7O转换成十进制数,其转换过程如下:其转换结果是:125.7O=182+281+580+781=64+16+5+0.875=85.875D。在八进制中,小数点左边的那位的权是1(80),再左边一位的权是8(81),依此类推。而小数点右边那些位的权,则是用基数(在此为8)去除,因此紧跟八进制小数点右边那位的权是1/8,即0.125,下一位是1/64,即0.015625。r进制数要转换成十进制数非常简单,只需将每一位数字乘以它的权rn,再以十进制的方法相加就可以得到它的十进制的值。(2)十进制数转换成r进制数十进制整数数据转换成r进制采用的是除r取余法 ,具体过程介绍如下:v

5、(1)将十进制数除r,保存余数。v(2)若商为0,则进行第三步,否则,用商代替 原十进制数,重复第1步。v(3)将所有的余数找出,最后得到的余数作为 最高位,最先得出的余数作为最低位,或者说由 余数逆序排列而成的新的数据就是转换成二进制 的结果。十进制小数数据转换成r进制采用的是乘r取整法 ,具体过程介绍如下: v(1)将十进制数乘r,保存得数中的整数部分。v(2)若得数为0,则进行第三步,否则,用除了 整数部分的小数部分的十进制数代替原十进制数 ,重复第1步。 v(3)将所有的整数找出,最后得到的整数作为 最低位,最先得出的整数作为最高位,或者说由 各整数按顺序排列而成的新的数据就是转换成二

6、 进制的结果。例如把十进制数23转换为二进制数的过程如图1.10所示。【例 】 把0.47 转换成二进制。用线图形式可演算如下:0.470.940.880.760.520.042 整数 0 1 1 1 1K1 K2 K3 K4 K5在取 5 位小数时有(0.47)10=(0. K1K2K3K4K5)2=(0.01111)2(3)二进制数与十六、八进制数的相互转换由于16=24 、8=23,所以在将二进制数转换成十六(八)进制数时,从小数点开始,分别向左和向右每四(三)位二进制数划为一组,用一位十六(八)进制数代替,也称为“以四(三)换一”;十六(八)进制数转换成二进制数时正好相反,一位十六(八

7、)进制数用四(三)位二进制数来替换,也称“以一换四(三)”。例如,要将二进制数1111101011011转换成十六 进制数,其转换过程如下:最终转换结果为:1111101011011B=1F5BH。 例如,要将十六进制数26CE转换成二进制数,其转换过程如下:26CEH=0010011011001110B原码、反码和补码在计算机中,不仅数值用 0 和 1 表示,而且正负号也用 0 和1 表示。一般规定一个存储单元的最高位(最左边的一位)为符号位,如该位是 0 表示正,该位是 1 表示负。在计算机中,带符号的数通常有三种表示方法:原码、反码和补码。为简单起见,下面我们只考虑用一个字节表示整数时的

8、原码、反码和补码。1. 原码原码是一种机器数,原码表示法就是在机器中最高位用 0 表示正数,用 1 表示负数,而其余位表示数本身。例如:+15的原码为: 00001111代表正15的原码为:10001111代表负+0的原码为:000000000的原码为:10000000同一个 0 在计算机中有不同的表示,这不适合计算机的运算。2. 反码在反码表示法中,正、负数的表示是不同的。正数的反码和原码是一样的,如+15的反码仍然是00001111。负数的反码为符号位是 1、其他各位是对原码求反,如15的反码为11110000。数值 0 的反码有两种:+0的反码为00000000, 0的反码为111111

9、11。即在反码表示法中,0 的表示仍然不惟一。3. 补码鉴于以上情况,计算机内部采用补码方法来表示数值。采用补码方法的好处是可以简化设计与计算,把减运算转变为加运算来进行。我们以时钟为例来说明补码的原理。比如现在的标准时间是 6 点,而你的表停在 11 点的位置,如图 1-1 所示。要调准你的表可用两种方法: 向前拨 7 格; 向后拨 5 格。不管采用哪种方法,都能达到目的,可谓殊途同归,但从算式上来看: 11+7=18 (向前拨) 115=6 (向后拨)计算结果并不一样,那么操作结果为什么会一样呢? 这是因为表盘的刻度是以 12 为周期的,超过12 就又从头计数,因此上面的计算结果 18 因

10、超过了 12 ,再从头开始计数后也就得到了 6。这个 12 就称为系统的模数,7 和 5 相对于模数 12 来说称做是互补的,即一个数是另一个数的补码。从上面的计算可以看出,减一个数就等于加上它的补码,效果是相同的,这就是把减法变成加法的原理。在计算机中以一个有限长度的二进制位作为模。比如用一个字节表示一个数,则其模数为 28,如运算结果超过 28,就从中减去 28。反映在内存中,其情况为1 00000000即把 8 位以外的数舍掉。计算机中的补码是这样定义的:正数:其补码与其原码、反码相同。例如:+15补=+15原=+15反=00001111+127补=+127原=+127反=0111111

11、1负数:最高位为 1,其余各位在原码的基础上取反,然后在最低位加 1,简称“求反加 1”。可用如下关系式表示:x补=x反+1注意:各位取反时不包括符号位,即符号位不求反。例如: -15原=10001111 -127原=11111111 -0原=10000000 -15反=11110000-127反=10000000-0反=11111111 -15补=11110001-127补=10000001-0补=00000000因为-0反+1=100000000,把超过 8 位的部分舍掉,则-0补的结果就是00000000,而+0的补码也是00000000,即在补码表示法中,0 的表示是惟一的。在 8 位字长情况下,-128是一个特殊的数,计算机中规定它的表示为 10000000,即它的补码为-128补=10000000我们也可以这样来看一个补码的生成,如表1-2 所示。-127 以前各数的补码既可以按x补=x反+1的公式得到,也可以按在前一个负数补码的基础上减 1 的规则来得到,而按这个规则求出-128 的补码为10000000也就很自然了。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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