欢迎来到天天文库
浏览记录
ID:49219379
大小:220.00 KB
页数:29页
时间:2020-02-02
《微型计算机中数的编码和字符的表示.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微型计算机中数的编码和字符的表示1数的表示与转换方法2带符号数的表示方法3定点数与浮点数4计算机中的编码1数的表示与转换方法(1) 进位制:数值按不同的进位方法,常分为二进制(B)、八进制(o)、十进制(D)、十六进制(H)。*二进制:计算机中使用的计数制,只有0、1两个符号,逢2进1。1100.101B=12.625D*十六进制数可认为是对二进制数的简化表现形式,它与二进制数有明显的对应关系。包含0、1…9、A、B、C、D、E、F16个符号,逢十六进一1数的表示与转换方法(2)不同进位位数值的转换二十六制由于一个十六进制位正好由4位二进制
2、数字构成:000000010010…100110101011…111011110129ABEF012910111415所以在二十六之间互相转换时,原则为:二到十六,以小数点为分界线,向左每4位一个组合转换成一位十六进制数,不够的左边补0,而右边每4位一个组合转换成16进制,不够的右边补0。11011•1010001101110101B·A1数的表示与转换方法十六到二将每个十六进制位转为4位二进制数即可。二、十六到十各位按权相加1数的表示与转换方法十到二、十六整数部分转换(除2取余)例30D转换为二进制即30=11110B低位230余0215
3、余127余123余11余1111101数的表示与转换方法十到二、十六小数部分转换(乘2取整)0.625D=0.101B0.50.250.1250.06250.03125讨论:浮点数的存储精度问题2带符号数的表示方法由于计算机只能识别0和1组成的数或代码,所以有符号数的符号也只能用0和1来表示,一般用0表示正,用1表示负。由于数值部分的表示方法不同,有符号数可有三种表示方法,分别叫做原码、反码和补码。无符号数与带符号数2带符号数的表示方法无符号数与带符号数原码表示的有符号数最高位为符号位,数值位部分就是该数的绝对值。例如:假设某机器为8位机,即
4、一个数据用8位(二进制)来表示,则:+23的原码为00010111-23的原码为10010111其中最高位是符号位,后7位是数值位。原码表示的数字范围:-127—+127+0原码:00000000-0原码:100000002带符号数的表示方法无符号数与带符号数反码表示的有符号数把最高位规定为符号位,数值部分对于正数是其绝对值,而对于负数则是其绝对值按位取反(即1变0,0变1)得到的。例如:+23的反码为00010111-23的反码为11101000反码表示的数字范围同原码。数字‘0’有2个编码表示:(+0)反=00000000(-0)反=11
5、1111112带符号数的表示方法无符号数与带符号数补码表示的有符号数正数的补码表示与原码、反码相同,负数的补码则是其绝对值的二进制值按位取反再在后末位加1形成。0的补码为00000000例如:+23的补码为00010111-23的补码为11101001补码表示的数字范围:-128—+127负数补码最高位一定为1例1:求-97的原码、反码和补码。解:-97原码为11100001-97反码为10011110-97补码为10011111例2:已知(X)补=11101110B,求其原码和真值。解:X为一负数,原码为数值部分求反加1(X)原=10010
6、010真值X=-18补码运算:[X]补+[Y]补=[X+Y]补[X]补-[Y]补=[X-Y]补=[X]补+[-Y]补例3:用补码表示形式计算11-7=?解:11-7=4=11+(-7)(11)补=00001011(-7)补=11111001(11)补-(7)补=(11)补+(-7)补=100000100=00000100真值=4溢出与进位:当运算结果超出数的表示范围时将产生溢出。例设字长为8位,用补码进行计算(+120)+(+30)01111000………+12000011110………+30+________________________10
7、010110-106错误又例设字长为8位,计算-5-16=(-5)+(-16)11111011………-511110000………-16+________________________111101011………-21丢失进位关于负数原码、反码、补码问题的讨论话题:已知负数的补码,求真值:一方面,负数求补码由原负数真值的绝对值求反加1得到,那么由补码反求负数真值应该是补码减1再求反得到另一方面,由补码反求负数真值,其绝对值一般仍采用其补码求反加1得到。二者矛盾吗?结论二者完全一致,例如:求补码10000000与11111111的真值首先,最高位为1
8、,它是一个负数下面求其绝对值:(1)10000000->01111111(减1)->10000000(求反)->12811111111->11111110(减1)-
此文档下载收益归作者所有