加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数制间的转换

(2008-02-28 12:52:28)
标签:

二进制数

数制

八进制数

十进制数

十六进制

分类: 知识积累
 数制及数制转换
1.5.1 在计算机中为什么使用二进制数
在计算机中,广泛采用的是只有"0"和"1"两个基本符号组成的二进制数,而不使用人们习惯的十进制数,原因如下:
(1)二进制数在物理上最容易实现。例如,可以只用高、低两个电平表示"1"和"0",也可以用脉冲的有无或者脉冲的正负极性表示它们。
(2)二进制数用来表示的二进制数的编码、计数、加减运算规则简单。
(3)二进制数的两个符号"1"和"0"正好与逻辑命题的两个值"是"和"否"或称"真"和"假"相对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利的条件。
1.5.2 为什么引入八进制数和十六进制数
二进制数书写冗长、易错、难记,而十进制数与二进制数之间的转换过程复杂,所以一般用十六进制数或八进制数作为二进制数的缩写。
进位计数制
按进位的原则进行的计数方法称为进位计数制。
在采用进位计数的数字系统中,如果用r个基本符号(例如:0,1,2,,r-1)表示数值,则称其为基r数制(Radix-r Number System),r成为该数制的基(Radix)。如日常生活中常用的十进制数,就是r=10,即基本符号为0,1,2,,9。如取r=2,即基本符号为0,1,则为二进制数。
认识各种数制的数
表1 各种数制表示的相互关系
二进制数
十进制数
八进制数
十六进制数
0
0
0
0
1
1
1
1
10
2
2
2
11
3
3
3
100
4
4
4
101
5
5
5
110
6
6
6
111
7
7
7
1000
8
10
8
1001
9
11
9
1010
10
12
A
1011
11
13
B
1100
12
14
C
1101
13
15
D
1110
14
16
E
1111
15
17
F
10000
16
20
10


对于不同的数制,它们的共同特点是:
1)每一种数制都有固定的符号集:如十进制数制,其符号有十个:0,1,2,,9,二进制数制,其符号有两个:0和1。
2)其次都是用位置表示法:即处于不同位置的数符所代表的值不同,与他所在位置的权值有关。
例如:十进制可表示为:
5555.555 = 5 103 + 5 102 + 5 101 + 5 100 + 5 10-1 + 5 10-2 + 5 10-3
可以看出,各种进位计数制中的权的值恰好是基数的某次幂。因此,对任何一种进位计数制表示的数都可以写出按其权展开的多项式之和,任意一个r进制数N可表示为:
式中的Di为该数制采用的基本数符,ri是位权(权),r是基数,表示不同的进制数;m为整数部分的位数,k为小数部分的位数。
"位权"和"基数"是进位计数制中的两个要素。
在十进位计数制中,是根据"逢十进一"的原则进行计数的。一般地,在基数为r的进位计数制中,是根据"逢r进一"或"逢基进一"的原则进行计数的。
在微机中,常用的是二进制、八进制和十六进制。其中,二进制用得最为广泛。
表2所示的是计算机中常用的几种进位数制。
表2 计算机中常用的几种进制数的表示
进位制
二进制
八进制
十进制
十六进制
规则
逢二进一
逢八进一
逢十进一
逢十六进一
基数
r=2
r = 8
r = 10
r = 16
数符
0,1
0,1,,7
0,1,,9
0,1,,9,A,,F
位权
2i
8i
10i
16i
形式表示
B(BinarySystem)
O(octalSystem)
D(DecimalSystem)
H(Hexadecimal System)
1.5.3 二、八、十六进制数(非十进制数)转换为十进制数
(1)(100110.101)2 ( )10
(100110.101)2 = 1* 2^5+ 1* 2^2 + 1* 2^1 + 1* 2^(-1) + 1* 2^(-3) = 32 + 4 + 2 + 0.5 + 0.125 = (38.625)10
(2)(5675)8 ( )10
(5675)8 = 5* 8^3 + 6* 8^2 + 7* 8^1 + 5* 8^0 = 2560 + 384 + 56 + 5 = (3005)10
(3)(3B)16 ( )10
(3B)16 = 3 *16^1 + 11* 16^0 = 48 + 11 = (59)10
课堂练习:
(143.65)8 ( )10
(143.65)2 = 1* 8^2 + 4 *8^1 + 3* 8^0 + 6* 8^(-1) + 5* 8-2
= 64 + 32 + 3 + 0.75 + 0.78125
= (99.828125)10

1.5.4 十进制数转换为二、八、十六进制数(非十进制数)
例:(25.3125)10 ( )2
整数部分和小数部分的转换方法不同
(1)整数部分的转换(除基取余法)
(25)10 = ( )2
(25)10 = (11001)2
先余为低,后余为高
(2)小数部分的转换(乘基取整法)
(0.3125)10 = ( )2
(0.3125)10 = (0.0101)2
先取整为高,后取整为低
综上所述:
(25.3125)10 = (11001)2 + (0.0101)2 = (11001.0101)2
十进制数转换为八、十六进制数以此类推
课堂练习:
(29.625)10 ( )8
(29)10 = (35)8
(0.625)10 = (0.5)8
(29.625)10 = (35)8 + (0.5)8 = (35.5)8

1
.5.5 非十进制数间的转换
(1)二进制数与八进制数间的转换
∵ 81 = 23
∴ 1位八进制数 相当于 3位二进制数,即:
N2 = B8B7B6 B5B4B3 B2B1B0

N8 = O2 O1 O0
例:(10100101.01011101)2 ( )8
解:由于八进制的1位数相当于二进制的3位数,所以只要将二进制数从小数点开始,整数部分从右向左每3位数一组,小数部分从左向右每3位数一组,最后不足3位补零(无论向左还是向右)。
010 100 101.010 111 010 二进制数
2 4 5 . 2 7 2 八进制数
答:(10100101.01011101)2 = (245.272)8
例:(302.54)8 ( )2
解:
3 0 2 . 5 4 八进制数
011 000 010.101 100 二进制数
答:(302.54)8 = (11000010.1011)2
(2)二进制数与十六进制数间的转换
∵ 161 = 24
∴ 1位十六进制数 相当于 4位二进制数,即:
N2 = B7B6B5 B4 B3B2B1B0

N16 = H1 H0
例:(1111111000111.100101011)2 ( )16
解:
0001 1111 1100 0111.1001 0101 1000 二进制数
1 F C 7 . 9 5 8 十六进制数
答:(1111111000111.100101011)2 = (1FC7.958)16
例:(3C.A6)16 ( )2
解:
3 C . A 6 十六进制数
0011 1100.1010 0110 二进制数
答:(3C.A6)16 = (111100.1010011)2
(3)八进制数与十六进制数间的转换
(1)八进制数 ==> 十进制数 ==> 十六进制数
或: (2)八进制数 ==> 二进制数 ==> 十六进制数(简单)
1.6 数制转换小结
四合一 一分四 一分三 三合一

权 除2取余
展 乘2取整

除16取余 按权展开 按权展开 整数:除8取余
乘16取整 小数:乘8取整

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有