第三章-数据在计算机中的表示-讲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/54第三章数据在计算机中的存放3.1进位计数制及相互转换3.2数据在计算机中的表示2/54在计算机内部一切数据的存储、处理和传送均采用二进制形式。为什么?P32主要原因是:(1)稳定性二进制数在物理上最容易实现。(2)简易性二进制数比十进制数的运算规则简单,这将使计算机的硬件结构大大简化。(3)逻辑性二进制只有两个数码“1”和“0”,正好与逻辑代数中的“真”和“假”相吻合。3.1进位计数制及相互转换1×1=11×0=00×1=00×0=03/54但二进制数书写冗长。所以为书写方便,一般用十六进制24数或八进制23数作为二进制数的简化表示。为了适应人的习惯,数值型数据在输入输出设备上仍采用人们十分熟悉的十进制。例如:十进制的10000,二进制为10011100010000,8进制为23420,16进制为27104/54一、数制十进制(Decimal)(简记符为D)0~9共10个数码,逢十进一二进制(Binary)(简记符为B)0~1共2个数码,逢二进一八进制(Octal)(简记符为O)0~7共8个数码,逢八进一十六进制(Hexadecimal)(简记符为H)0~9,A~F共16个数码,逢十六进一5/54二进制二进制用数字0和1表示数值,采用“逢二进一”计数原则。100,101,110,111,1000,1001,1010,二进制数的表示:0,1,10,11,????1011,1100,1101,1110,1111,……12101031,是不是合法的二进制数??不是6/54八进制八进制用0,1,2,3,4,5,6,7八个数码表示数值10,11,12,13,14,15,16,17,八进制数的表示:0,1,2,3,4,5,6,7,????20,21,22,23,24,……110101,是不是合法的八进制数??是190101,是不是合法的八进制数??不是7/54十六进制十六进制用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个数码表示数值,采用“逢十六进一”计数原则。基数为16,位权为16i。0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,…十六进制数的表示:8/54十进制0123456789101112131415二进制01101110010111011110001001101010111100110111101111八进制012345671011121314151617十六进制0123456789ABCDEF9/54678.34=6×102+7×101+8×100+3×10-1+4×10-2二、进位计数制任意进制数r:数码:基数:权:数值:基数权数码数值R进制转化成十进制用r个基本符号(如0,1,2,…,r-1)表示数码;逢r进一,r为基数,表示数码的个数;基数为底、数码所在位置的幂表示权;数值是数码和权展开多项式的和;10/541×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3(1011.101)2=(1011.101)8=(473.25)8=1×83+0×82+1×81+1×80+1×8-14×82+7×81+3×80+2×8-1+5×8-24×163+A×162+F×161+8×160+9×16-1+4×16-2+B×16-3(4AF8.94B)16=1.R进制转化成十进制三、不同进位计数制间的转换11/542.十进制转化成R进制整数部分:除以r取余数,直到商为0,余数从右到左排列。小数部分:乘以r取整数,整数从左到右排列。100(D)再例100.345(D)10025000.3452八进制100812818044110016604616十六进制演示≈1100100.=144(O)=64(H)22521226232100100111.3800.690220.76021.52021.040101101011(B)12/542125余数26212310215127123121101则得:(125)10=(1111101)2[例]将十进制整数125转换成对应的二进制整数。13/540.467整数部分×20.9340×21.86810.868×21.73610.736×21.4721…………..则得:(0.467)10=(0.0111….)2[例]将十进制小数0.467转换成对应的二进制数[例]将十进制整数125转换成对应的十六进制整数。[例]将十进制整数125转换成对应的八进制整数。16125余数16713(D)07则得:(125)10=(7D)168125余数815581701则得:(125)10=(175)815/543.二进制、八进制、十六进制数间的相互转换64(H)=01100100(B)64144.26(O)=001100100.010110(B)144.26(1)八、十六进制转换为二进制一位八进制数对应三位二进制数一位十六进制数对应四位二进制数144.26(O)=1100100.01011(B)16/54[例]将十六进制数5FD4.A3转换成对应的二进制数。(5FD4.A3)16=0101111111010100.10100011则得:(5FD4.A3)16=(101111111010100.10100011)217/54001101101110.110101(B)1556.65(2)二进制转化成八、十六进制以小数点为中心整数部分:从右向左按三(四)位进行分组小数部分:从左向右按三(四)位进行分组不足补零1101101110.110101(B)=?(O)1101101110.110101(B)=?(H)001101101110.11010100(B)36E.D4=1556.65(O)=36F.D4(H)18/54[例]将二进制数1101100111.10111转换成对应的十六进制数。001101100111.10111000367B8则得:(1101100111.10111)2=(367.B8)1619/54二进制、八进制、十六进制数间的关系八进制对应二进制十六进制对应二进制十六进制对应二进制0000000008100010011000191001201020010A1010301130011B1011410040100C1100510150101D1101611060110E1110711170111F111120/54•算术运算P29–加–减–乘–除•逻辑数据表示–真–假•逻辑运算P30–与(*)–或(+)–非(取反)四、二进制数的运算21/543.2数据在计算机中的表示数据两类:数值数据:非数值数据:计算机只能接收“0”和“1”二进制信号,如何表示和存放数据?就必须对数据进行数字化和编码.编码:即用“0”和“1”的二进制组合来表示数据2进制,10进制,8进制,16进制字符、图形、图像、声音、视频22/54符号位“0”表示正、“1”表示负一、数值在计算机中的表示10101100把数值真值数的“+”、“-”符号用“0”和“1”表示机器数:真值:例如:76其真值数:-76其真值数:数值用7个二进制表示,符号保留+0101100-0101100-76其机器数:10101100(设一个数占8位)23/54机器数表示法运算带来问题复杂性:例(-5)+4的运算10000101…………-5的机器数+00000100…………4的机器数10001001…………运算结果为-9为便于运算,引入了多种编码表示方式,常用的是:原码、反码和补码,其实质是对负数表示的不同编码。正数这三种情况都一模一样。结果应为-1。24/540X1|X|0=XX=0+7:00000111+0:00000000-7:10000111-0:10000000[X]原=0X1|X|0=XX=0+7:00000111+0:00000000-7:11111000-0:11111111[X]反=+7:00000111+0:000000000X1|X|+10=XX=0-7:11111001-0:00000000[X]补=带符号数的表示假定一个数在机器中占用8位,最高位符号位。(1)原码:即机器数形式:符号位|X|0不唯一0不唯一0唯一(3)补码:负数:反码加1,即去-号取反加一(2)反码:负数:去-号取反25/54举例:假定一个数在机器中占用8位,最高位符号位。求出10,-10,120,-120的原码、反码及补码求出130,-130的原码、反码及补码10:000010100000101000001010-10:100010101111010111110110120:01111000-120:130:0111100001111000111110001000011110001000数值超出7位,超出8位表数范围,所以只能用16位表示00000000100000101000000010000010-130:11111111011111011111111101111110原码:反码:补码:原码:反码:补码:原码:反码:补码:原码:反码:补码:26/54★原码、反码、补码的表数范围??数的范围与机器字长有关8位整数原码表示的范围为:1111111101111111-12712727-1-(27-1)8位整数反码表示的范围为:1000000001111111-12712727-18位整数补码表示的范围为:1000000001111111-12812727-1-27机器字长16位??最小:最大:最小:最大:最小:最大:-(27-1)27/54补充:无符号数所有位都是数值位,不存在符号位。即无符号数都是正的。所以也就没有原码、反码、补码的概念。8位无符号数可表示数的范围为:0000000011111111025528-1机器字长16位??最小:最大:28/54★原码、反码、补码的作用?原码:机器数反码:通常作为求补过程的中间形式,其他情况很少使用。补码:目前计算机中的加减法运算基本上都采用补码进行运算。加减法都可以用加法来实现,计算变得简单。即:[X+Y]补=[X]补+[Y]补[X﹣Y]补=[X+(﹣Y)]补=[X]补+[﹣Y]补29/54[例1.21]计算十进制数“39”与“56”之差(39)10﹣(56)10=[39]补+[﹣56]补[39]补=00100111[﹣56]补=1100100000100111+1100100011101111结果是否正确??-1730/54计算机中加减法运算统一化成补码的加法运算,符号位也参与运算。可以验证,任何一个数的反码的反码即是原码本身。补码的补码即是原码本身。31/54故,为了表示特大或特小的数,用浮点数(科学计数法)来表示。64位字长,则补码表示的最大数为:最小数为:+(263-1),即9223372036854775807-263,即-9223372036854775808浮点数(指数形式)在数学中,一个实数可以用指数形式表示。例如:1233.14=1.23314×103=12331.4×10-1=…N=±d×10±p式中:d是尾数,前面的“±”表示数符;p是阶码,前面的“±”表示阶符。同样,任意二进制浮点数的表示形式为:N=±d×2±p110.011(B)=0.110011×2+3=11001.1×2-2=1.110011×2+2=…标准形式标准形式33/541.规格化数表示:IEEE754标准110.011(B)=+1.110011×2+234/54数符阶码尾数单精度数:1位8位23位2.机内存储双精度数:1位11位52位单精度加127,双精度加1023110.011(B)=+1.110011×2+2=+1.110011×2+2+127=+1.110011×2129=+1.11001100000000000000000×21000000101000000111001100000000000000000①数符:0表示正,1表示负②尾数中的“1.”不

1 / 61
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功