ξ1 计算机内部是一个二进制数字世界 怎样与电脑通话
§1.1电脑只知道“0”与“1”
小朋友,你是不是很想和电脑对话呀!可是我们的电脑只认识“0”和“1”,在它的世界里,所有的信息都是由“0”、“1”两个数字组合而成的。我们要想和电脑对话,就必须学会它的语言。现在就开始吧!
我们称这种数字方式为“二进制”数字方式。
由于运算简单,易于物理实现,机器可靠性高,通用性强,所以计算机内部都用二进制编码进行数据的传送和计算。
1)易于物理实现
因为具有二种稳定状态的物理器件是很多的,如指示灯的不亮与亮,电视机的开与关,磁性的N极与S极,电平的低与高等等,而它们恰好对应表示1和0两个符号。假如采用十进制,要制造具有10种稳定状态的物理电路,那是非常困难的。
2)二进制数运算简单
二进制数运算简单,简化了运算器等物理器件的设计。
3)机器可靠性高
由于电压的高低、电流的有无等都是一种质的变化,两种状态径渭分明,所以二进制数的传递抗干扰能力强,鉴别信息的可靠性高。
4)通用性强
计算机存储器中存储的都是0101
的信息,但它们分别代表各自不同的含义,有的表示机器指令,有的表示二进制数据,有的表示英文字母,有的则表示汉字,还有的可能是表示色彩与声音。虽然计算机内部均用二进制数来表示各种信息,但计算机与外部交往仍采用人们熟悉和便于阅读的形式,如十进制数据、文字显示以及图形描述等。其间的转换,则主计算机系统的硬件和软件来实现。
如: A 01000001 57 111001
§1.2数的进制与基数10+10=?20?非也!
我们平常用十进制数的时候,数到十就要向前进一位,这叫“逢十进一”。而在二进制中遇到“2”就要向前进1位,它的特点就是“逢二进一”。二进制数的运算法则如下:
0+0 = 0,0+1=1,1+0 = 1,1+1=10
进制
基数
基本符号
特点
说明
十进制 D
10
0,1,2,...,9
逢十进一
如9+1=10,二进制则为1010,八进制为12,表示为十六进制则为A
二进制 B
2
0 ,1
逢二进一
如二进制数10111111,表示为八进制为277,表示为十六进制为BF
八进制 O
8
0,1,2,3,4,5,6,7
逢八进一
如十进制7,表示为八进制为7,表示为二进制则为111
十六进制 H
16
0,1,2,...,9,A,B,C,D,E,F
(A-F对应十进制数的10-15)
逢十六进一
如十进制15,表示为十六进制则为F,表示为二进制则为1111
§1.3二进制、八进制、十六进制和十进制之间的关系
1) R进制转换为十进制
① 二进制转换为十进制
例1:把二进制数1101101转换成十进制数。
解:(1101101)2 =1×20+0×21+1×22+1×23+0×24+1×25+1×26=1+0+4+8+0+32+64=109
∴ (1101101)2 =(109)10
例2:把二进制数1101101.0101转换成十进制数
解:(1101101.0101)2 =1×20+0×21+1×22+1×23+0×24+1×25+1×26+0×2-1+1×2-2+0×2-3+1×2-4=109.3125
② 八进制转换为十进制
例1:把八进制数3506.2转换成十进制数。
解:(3506.2)8 =6×80+0×81+5×82+3×83+2×8-1=1862.25
③ 十六进制转换为十进制
例1:把十六进制数0.2A转换成十进制数。
解:(0.2A)16 =2×16-1+10×16-2=0.1640625
从上面几个例子可以看到,当从R进制转换到十进制时,可以把小数点作为起点,分别向左右两边进行。
2) 十进制整数转换为R进制
“除R取余”法
把十进制整数9
转换成二进制数 “除二取余”法
(9)10或9D
十进制数9
(9)10=(1001)2=1001B
2 9 余数
2 4 1
2 2 0
1 0
先从左读到右
同理,十进制整数转换成八进制或十六进制的整数,一样,用十进制数连续地除以R,其余数即系数
3)十进制小数转换为R进制
“乘R取整”法,连续地乘以R,直到小数部分为0,或打到所要求的精读为止(小数部分可能永不为零,得到的整数即组成R进制的小数部分)
①把十进制小数0.3125 转换成二进制数
0.3125*2=0.625
0.625*2=1.25
0.25*2=0.5
0.5*2=1.0
∴(0.3125)10=(0.0101)2
②把十进制小数0.5627 转换成二进制数
0.5627*2=1.1254
0.1254*2=0.2508
0.2508*2=0.5016
0.5016*2=1.0032
1.0032*2=0.0064
0.0064*2=0.0128
小数位达不到0,只能取到一定精度:(0.5627)10=(0.100100)2
4)二、八、十六进制的相互转换
(1)八进制转换为二进制:将八进制数的每一位展开为三位二进制码(不够三位,在前面补零),然后顺次相连即得,如:
(356)8=(011 101 110)2=(11101110)2
(2)十六进制转换为二进制:将十六进制数的每一位展开为四位二进制码(不够四位,在前面补零),然后顺次相连即得,如:
(356)16=(0011 0101 0110)2=(1101010110)2
(3)二进制1011010.10转换为八进制和十六进制
001 011
010.100 (1011010.10)2=(132.4)8
1 3 2. 4
0101
1010.1000 (1011010.10)2=(5A.8)16
5 A. 8
练一练:
①和十进制数23的值相等的二进制数是(10111 )。
②(3725)8+(B)16的运算结果是(B )。
A.(3736)8 B.(2016)10 C.(1111110000)2 D.(3006)10 E.(7B0)16
③十进制2004等于八进制数(3724 )
④(2004)10 +(32)16的结果是( D)
A、(2036)10 B、(2054)16 C、(4006)10 D、(100000000110)2
⑤八进制数25.63转换为二进制数(10101.110011)
⑥十进制57.3125转换为二进制数(111001.0101)