1-5数制及其相互转换
A理论部分
一、什么叫数制?
在生活中我们常用十进制数(Decimal)计数,比如当我们数数时,总是先从1开始数,每次都加1,逢十进一位,一直数下去…有时我们还会用到其它进制数,时间采用六十进制、筷子两个为一双,这是二进制、买酸奶时十二个为一“打”,这是十二进制,聪明的你只要动脑筋一定会举出许多这样的例子。这些用一组固定的数字和一套统一规则来表示数目的方法叫数制(Number system)。
本节约定:如果492是一个十进制数可表示为(49210,如果1101是一个二进制数表示为(11012,相对应的(F16表示F为一个十六进制数。
二、基数和位权的概念
  下面我们来探索十进制计数的秘密:十进制数由0到9共10个数字组成,它的特点是“逢十进一
”,因为十进制数共有10个数码,我们可以定义十进制数的基数为10。但是十进制数中各个数位上的数码所代表的意义是不同的,如:8在十位上时表示80;8在千位上时表示8000;而8在小数点后两位(百分位)上就表示0.08了!由此我们发现看清十进制数各数码的固定位置(明确计数单位)是读出此数的关键。我们把固定位置上的计数单位叫位权(或)。十位的权为10;百位的权为100;千位的权为10^3(注:10^3表示10的3次方,也就是3个10连乘);小数点后一位的权为10^-1(读作:十的负一次方)。因此,十进制数中,各位上权值是基数10的若干次方,如十进制数6851.912可以表示为:
(6851.912)10=6*10^3+8*10^2+5*10^1+1*10^0+9*10^-1+1*10^-2+2*10^-3
计算机采用的是二进制(Binary)计数制,因为二进制数只有01两个数码,其运算电路容易实现;运算规则简单可以节省设备;更便于逻辑判断。但二进制长度较长,书写不方便,所以计算机也经常采用八进制(Octal)与十六进制(Hexadecimal)
下表说明了常用计数制的基数、权和数字符号:
十进制
二进制
八进制
十六进制
基数
10
2
8
16
位权(权)
10
2^n
8^n
16^n
数字符号
09
0,1
07
09
ABCDEF
前面我们已经知道了十进制数是“逢十进一”,原来二进数是“逢二进一”,八进制数是“逢八进一”,十六进制数是“逢十进一”。明白了这个道理,我们可以归纳一个十进制数、二进制数、八进制数、十六进制数的对照表,这个表对数制间的转换非常重要:
十进制数
二进制数
八进制数
十六进制数
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
16
10000
20
10
三、数制的相互转换
在计算机内部,一切信息(包括数值、字符、指令等)的存放、处理和传送均采用二进制数形式。后来为了便于书写和记忆又引入了八进制数和十六进制数,所以学习十进制数、二进制数、八进制数、十六进制之间的转换是有意义的。
1、 十进制数转换二进制数
十进制数(整数)转换二进制数(整数)采用除2取余法。即用十进数除以2,记下商和余数,再用商去除2,并记下商和余数;一直除到商为0结束。在将每次除得的余数(必定是01倒排,得出对应的二进制数。
1-5-1  求:(5810=  2
所以:5810= 111010 2
2、 二、八、十六进制数转换成十进制数
二、八、十六进制数转换成十进制数采用按权展开法:
1-5-2 求(101112=  10;(101.1012=  10
2533.428=  10;(1CB.D816=  10
解:(101112=1*2^4 +0*2^3 +1*2^2 +1*2^1 +1*2^0=(23)10
101.1012=1*2^2 +0*2^1 +1*2^0 +1*2^-1 +0*2^-2 +1*2^-3
            =(5.625)10
2533.428=2*8^3 +5*8^2 +3*8^1 +3*8^0 +4*8^-1 +2*8^-2
            =(1371.53125)10
1CB.D816=1*16^2 +12*16^1 +11*16^0 +13*16^-1 +8*16^-2
            =(459.84375)10
3、 二进制数与八、十六进制数之间的转换
二进制转换为八进制时,每三位二进制数对应一位八进制数,以小数点为界,整数部分从低向高划分,每三位一组,不足三位补0;小数部分从高向低,同样每三位一组,不足三位补0,例如:
1-5-3 求(11011.112=  8
解: 011 011.110
      3  3  6            所以:(11011.112= 33.6 8
对应的,八进制数转换为二进制数时,只需将每位八进制数用三位二进制数表示即可!
1-5-4 123.528=  2
解:    1      2      3  .   5    2 
      001    010    011    101  010
所以:(123.528=1010011.101012
二进制转换为十六进制时,每四位二进制数对应一位十六进制数,以小数点为界,整数部分从低向高划分,每四位一组,不足四位补0;小数部分从高向低,同样每四位一组,不足四位补0,例如:
1-5-5 求(1011110111.1101110112=  16
解:  0010 1111 0111 .1101 1101 1000
        2    F    7    D    D    8
所以:(1011110111.1101110112=  2F7.DD8 16
十六进制数转换为二进制数时,只需将每位十六进制数用四位二进制数表示即可!
1-5-6 27.FC16=  2
解:   2      7   .    F     C 
      0010  0111    1111  1100
所以:(27.FC16= 100111.111111  2
前面并没有涉及到八、十六进制数转换成十进制的方法,实际中我们当然也可分别采用除8和除16取余法求解,但还有一种更有效的转换方法,留给同学们自己去思考。另外不同的计算机教材对各进制数表示有所差异,例如有的书在二进制数末尾加B;在八进制数末尾加QO;在十六进制数末尾加H;在十进制数末尾加D,这只是表示方法的不同,请同学们在学习时要特别注意。
B实践部分
1、 进行英文指法录入的综合练习,逐步提高速度和准确率。
2、 有条件上机的同学可以运行如下程序, L.LGO是完成十进制数转换为二进制数、八进制数、十六进制数的LOGO源程序:
以下是L.LGO的源程序清单:主过程为L,并让你输入一个十进制数。
;
2001.03.17
;TX过程在屏幕上画图,并没有计算,这个过程可以独立运行
TO TX
PU SETX 201
PD FD 100 RT 90 FD 50 RT 90 PU FD 50 PD
SETH 270 FD 50 BK 50 SETH 180 FD 50 RT 90
FD 50 PU FD 50 SETH 0 PD FD 100
PU SETH 270 FD 70 PD RT 90 BK 100 LT 90 FD 50 RT 90
REPEAT 4[FD 50 RT 90] FD 50 REPEAT 4[FD 50 RT 90]
LT 90 PU FD 70 PD FD 50 LT 90 FD 50 LT 90 FD 50 LT 90
PU FD 50 PD FD 50 LT 90 FD 50
PU FD 70 PD REPEAT 2[FD 50 LT 90 FD 100 LT 90]
PU FD 100 SETH 0 PD BK 100
HT
END
TO L
DRAW CT
TX
PR "|ah pupizhi@163|
PR "|Input Base 10!|
MAKE "X READ
IF :X<0 STOP
LL :X
SETW 5
SETPC 14
SETBG 1
TX
HT
END
TO LL :X
TYPE [\(]
TYPE :X
TYPE [\)10=]
A2 :X
A8 :X二进制转换十六进制数
A16 :X
A10 :X
PR "
END
TO A2 :X
TYPE [\(]
MAKE "BASE 2
TYPE :X
TYPE [\)2]
TYPE [=]
END
TO A10 :X
TYPE [\(]
MAKE "BASE 10
TYPE :X
TYPE [\)10]
END
TO A8 :X
TYPE [\(]
MAKE "BASE 8
TYPE :X
TYPE [\)8=]
END
TO A16 :X
TYPE [\(]
MAKE "BASE 16
TYPE :X
TYPE [\]16=]
END
3、 完成下列计算题:
10102=  10
10108=  10
BAD16=  10
34.618=    2
1CB.D816=(  ?  )2
58.7510=  2=  8=  16
参考答案:10520298911100.110001111001011.11011
          111010.1172.63A.C
4、求13/16的二进制表示?
解:1310=11011610=10000列除法竖式可得:
所以:13/16的二进制表示为 0.1101
5、若用十六进制0000H到FFFFH给存储器中的字节地址编号,存储器容量是多少?
解法一:因存储器中的字节地址编号从0000HFFFFH,所以有(FFFFH-0000H+1个地址编号可供使用。(FFFFH-0000H+1=10000H-1-0000H+1=10000H=(116^4)10=16^4字节=16^4B

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。