1 在计算机中为什么使用二进制数
在计算机中,广泛采用的是只有"0"和"1"两个基本符号组成的二进制数,而不使用人们习惯的十进制数,原因如下:
(1)二进制数在物理上最容易实现。例如,可以只用高、低两个电平表示"1"和"0",也可以用脉冲的有无或者脉冲的正负极性表示它们。
(2)二进制数用来表示的二进制数的编码、计数、加减运算规则简单。
(3)二进制数的两个符号"1"和"0"正好与逻辑命题的两个值"是"和"否"或称"真"和"假"相对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利的条件。
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,1,2,,9,二进制数制,其符号有两个:0和1。
2)其次都是用位置表示法:即处于不同位置的数符所代表的值不同,与他所在位置的权值有关。
例如:十进制可表示为:
5555.555=5*10^3 5*10^2 5*10^1 5^10^0 5*10^(-1) 5*10^(-2)
5*10^(-3)
(说明:10^3表示10的3次方,10^(-3)表示10的-3次方,下同)
可以看出,各种进位计数制中的权的值恰好是基数的某次幂。因此,对任何一种进位计数制表示的数都可以写出按其权展开的多项式之和,任意一个r进制数n可表示为:
"位权"和"基数"是进位计数制中的两个要素。
在十进位计数制中,是根据"逢十进一"的原则进行计数的。一般地,在基数为r的进位计数制中,是根据"逢r进一"或"逢基进一"的原则进行计数的。
在微机中,常用的是二进制、八进制和十六进制。其中,二进制用得最为广泛。
表2所示的是计算机中常用的几种进位数制。
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
4 十进制数转换为二、八、十六进制数(非十进制数)
例:(133.875)10=( )2
整数部分和小数部分的转换方法不同
(1)整数部分的转换(除基反取余数法)
整数转换:
规则:先余为低,后余为高
(2)小数部分的转换(乘基取整法)
小数的转换:
规则:先取整为高,后取整为低
注意:十进制小数转换为二、八、十六进制数时不一定能精确转换。
综上所述:
(133.875)10=(1000101.111)2
课堂练习:
(29.625)10 =( )8
5 非十进制数间的转换
(1)二进制数与八进制数间的转换
∵ 8^1 = 2^3
∴ 1位八进制数 相当于3位二进制数.
例:(10100101.01011101)2=( )8
解:由于八进制的1位数相当于二进制的3位数,所以只要将二进制数从小数点开始,整数部分从右向左每3位数一组,小数部分从左向右每3位数一组,最后不足3位补零(无论向左还是向右)。
010 100 101.010 111 010 二进制数
2 45 . 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位二进制数.
例:(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)八进制数 ==