微型计算机常用的进位,2.1 进 制 转 换 - 第2章 计算机进制转换及数据编码 - 《汇编语言与微机原理教程》 - 程序开发 - 恰教程网...

本章将介绍常用进位计数制及其相互转换,以及计算机中数的表示和运算,掌握数的原码、反码和补码的表示,熟悉ASCII码和汉字字符集及其编码,了解语音、图像、图形在计算机中的表示。

331AE574-97AF-6400-67FB-E72338E6E9D5.gif本章主要内容

&ASCII码

&汉字字符集及其编码

2.1进 制 转 换

2.1.1计算机常用的进制

日常生活中人们计数主要使用十进制数,也辅以其他进位制数,如十二进制(以月计年)、六十进制(以分计时、以秒计分)等。计算机以二进制数为基础,在进行输入、输出、显示时也会用到其他进位制。

1.进位计数制

每种进位制都有自己的基数,即该进位制中允许使用的基本数码个数。如十进制数每个数位上允许选用0、1、2、…、9共10个不同数码中的一个,十进制的基数为10,每位计满10向高位进1,减到0以后从高位借1当10。

同一个数码处在数中不同位置所代表的数值是不同的。如十进制数1234.56,最高位的1在小数点左边第四位,是千位,该位上的1代表的数值是数码1乘以103,小数点左边第三位到第一位依次是百位、十位、个位,其上的2、3、4代表的数值分别是2×102、3×101、4×100(即4×1),小数点右边的5和6分别在十分位和百分位上,所代表的数值分别是5×10-1和6×10-2。一般而言,每个数码所代表的数值等于该数码乘以一个常数,这个常数以基数为底,以数码所在位置的序号(小数点向左从0开始递增,小数点向右从-1开始递减)为指数的整数次幂,这就是该数位的“权”。十进制的千、百、十、个、十分位、百分位的权依次是103、102、101、100、10-1、10-2。

(1)十进制。十进制数码有10个:0、1、2、…、9;计数时逢10进1,借1为10;各位的权为10的相应次幂;左移i位相当乘以10i,右移i位相当除以10i(即×10-i)。

(2)二进制。二进制数码有两个:0、1;计数时逢2进1,借1为2;各位的权为2的相应次幂;左移i位相当乘以2i,右移i位相当除以2i(即×2-i)。

(3)十六进制。十六进制数码有16个:0、1、2、…、9、A、B、C、D、E、F;计数时逢16进1,借1为16;各位的权为16的相应次幂;左移i位相当乘以16i,右移i位相当除以16i。表示十六进制数时,在数的末尾加H。

(4)八进制。八进制数码有8个:0、1、2、3、4、5、6、7;计数时逢8进1,借1为8;各位的权为8的相应次幂;左移i位相当乘以8i,右移i位相当除以8i。表示八进制数时,在数的末尾加Q或O。

二进制只有两个数码0和1,运算规则简单,表达式易用逻辑代数化简,表示相同范围的数值时节省设备,因此现代计算机无例外地采用了二进制。但二进制数书写冗长、易错、难记,书写时多用十六进制或八进制。

2.常用进位计数制间的转换

(1)任意进制到十进制的转换:按权展开。

(2)十进制到其他进制的转换:整数部分重复除以基数取余;小数部分重复乘以基数取整。

(3)二进制与八进制、十六进制间的转换:以小数点为基准,整数部分向左3位或4位二进制数化为一位八进制或十六进制数,不足3或4位的添前0;小数部分向右3位或4位二进制数化为一位八进制或十六进制数,不足3或4位的补后0;我们将二—八或二—十六的转换方法形象地叫做三合一或四合一。

反之亦然,八—二或十六—二的转换方法为:以小数点为基准,整数部分向左、小数部分向右将一位八进制或十六进制数化成3或4位二进制数,再去掉无意义的前0和后0;同样,我们将八—二或十六—二的转换方法形象地叫做一分三或一分四。

常用的进位记数制之间的转换方法如图2-1所示。

C32818F0-06B0-D348-6770-F52884326AB9.png

图2-1进位记数制间的转换

2.1.2原码、反码和补码

1.无符号数的表示

所谓无符号数是正数和0的集合。存储一个正数或0时,所有的位都用来存放这个数的各位数字,无须考虑它的符号,无符号数因此得名。

可以用字节、字、双字或者更多的字节来存储和表示一个无符号数。

用N位二进制表示一个无符号数时,最小的数是0,最大的数是2N-1(N位二进制数111…111)。一个字节、字、双字无符号数的表示范围分别是0~255、0~65535、0~4294967295。

一个无符号数需要增加位数时,需要在它的左侧添加若干个零,称为零扩展。例如,使用一个字存储8位无符号数11010011时,低位字节置入这个无符号数,高位字节填0,结果为0000000011010011。

2.有符号数的表示

计算机内用补码来表示一个有符号数,可以用字节、字、双字或者更多的字节来存储一个有符号数的补码。

补码表示法用最高有效位表示一个有符号数的符号,1表示符号为负,0表示符号为正。

符号位后的其他二进制位用来存储这个数的有效数字。正数的有效数字不变,负数的有效数字取反后最低位加1。表2-1列出了用8位二进制代码表示的部分数值的补码。

表2-1部分数据的补码

真值(十进制)

二进制表示

补码

真值(十进制)

二进制表示

补码

+127

+1111111

01111111

-1

-0000001

11111111

+1

+0000001

00000001

-2

-0000010

11111110

+0

+0000000

00000000

-127

-1111111

10000001

-0

-0000000

00000000

-128

-10000000

10000000

用一个字节存储有符号数补码时,可以表示127个正数(1~127)、128个负数(-1~-128)和一个0(00000000)。其中,[-1]补=11111111,[-128]补=10000000。

如果把一个数的补码的所有位(包括符号位)取反加1,将得到这个数的相反数的补码。把取反加1这个操作称为求补,[[X]补]求补=[-X]补。

已知一个负数的补码,求这个数自身时,可以先求出这个数相反数的补码。一个补码表示的有符号数需要增加位数时,对于正数,需要在它的左侧添加若干个0,对于负数,则需要在它的左侧添加若干个1。上述操作实质上是用它的符号位来填充增加的高位(无论该数是正是负),称为符号扩展。例如,[-2]补=11111110(8位)=1111111111111110(16位),[+2]补=00000010(8位)= 0000000000000010(16位)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值