拂晓-千云暗组- 努力,执着,意志,精神

二进制

2015-03-21
二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
表示法:
二进制数据也是采用位置计数法,其位权是以2为底的幂。例如二进制数据110.11,逢2进1,其权的大小顺序为2²、2¹、2º、 、 。对于有n位整数,m位小数的二进制数据用加权系数展开式表示
二进制和十六进制,八进制一样,都以二的幂来进位的。

运算:
加法
有四种情况: 0+0=0
0+1=1
1+0=1
1+1=10
0 进位为1
乘法
有四种情况: 0×0=0
1×0=0
0×1=0
1×1=1
减法
0-0=0,1-0=1,1-1=0,0-1=1。
除法
0÷1=0,1÷1=1。
拈加法
拈加法二进制是加减乘除外的一种特殊算法。
拈加法运算与进行加法类似,但不需要做进位。此算法在博弈论(Game Theory)中被广泛利用
计算机中的十进制小数转换二进制
计算机中的十进制小数用二进制通常是用乘二取整法来获得的。
比如0.65换算成二进制就是:
0.65 × 2 = 1.3 取1,留下0.3继续乘二取整
0.3 × 2 = 0.6 取0, 留下0.6继续乘二取整
0.6 × 2 = 1.2 取1,留下0.2继续乘二取整
0.2 × 2 = 0.4 取0, 留下0.4继续乘二取整
0.4 × 2 = 0.8 取0, 留下0.8继续乘二取整
0.8 × 2 = 1.6 取1, 留下0.6继续乘二取整
0.6 × 2 = 1.2 取1,留下0.2继续乘二取整
在现实生活和记数器中,如果表示数的“器件”只有两种状态,如电灯的“亮”与“灭”,开关的“开”与“关”。一种状态表示数码0,另一种状态表示数码1,1加1应该等于2,因为没有数码2,只能向上一个数位进一,就是采用“满二进一”的原则,这和十进制是采用“满十进一”原则完全相同。
1+1=10,10+1=11,11+1=100,100+1=101,
101+1=110,110+1=111,111+1=1000,……,
其实把二进制三位一组分开就是八进制, 四位一组就是十六进制
二进制转十进制
方法:“按权展开求和”
【例】:
规律:个位上的数字的次数是0,十位上的数字的次数是1,……,依次递增,而十
分位的数字的次数是-1,百分位上数字的次数是-2,……,依次递减。
注意:不是任何一个十进制小数都能转换成有限位的二进制数。
十进制转二进制
· 十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)
【例】:
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)
(0.625)10= (0.101)2
0.625X2=1.25 ……1
0.25 X2=0.50 ……0
0.50 X2=1.00 ……1
十进制1至128的二进制表示:
0=0
1=1
2=10
3=11
4=100
5=101
6=110
7=111
8=1000
9=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
16=10000
17=10001
18=10010
19=10011
20=10100
21=10101
22=10110
23=10111
24=11000
25=11001
26=11010
27=11011
28=11100
29=11101
30=11110
31=11111
32=100000
33=100001
34=100010
35=100011
36=100100
37=100101
38=100110
39=100111
40=101000
41=101001
42=101010
43=101011
44=101100
45=101101
46=101110
47=101111
48=110000
49=110001
50=110010
51=110011
52=110100
53=110101
54=110110
55=110111
56=111000
57=111001
58=111010
59=111011
60=111100
61=111101
62=111110
63=111111
64=1000000
65=1000001
66=1000010
67=1000011
68=1000100
69=1000101
70=1000110
71=1000111
72=1001000
73=1001001
74=1001010
75=1001011
76=1001100
77=1001101
78=1001110
79=1001111
80=1010000
81=1010001
82=1010010
83=1010011
84=1010100
85=1010101
86=1010110
87=1010111
88=1011000
89=1011001
90=1011010
91=1011011
92=1011100
93=1011101
94=1011110
95=1011111
96=1100000
97=1100001
98=1100010
99=1100011
100=1100100
101=1100101
102=1100110
103=1100111
104=1101000
105=1101001
106=1101010
107=1101011
108=1101100
109=1101101
110=1101110
111=1101111
112=1110000
113=1110001
114=1110010
115=1110011
116=1110100
117=1110101
118=1110110
119=1110111
120=1111000
121=1111001
122=1111010
123=1111011
124=1111100
125=1111101
126=1111110
127=1111111
128=10000000
与八进制
二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。
八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。
八进制数字与十进制数字对应关系如下:
000 -> 0 | 004-> 4 | 010=8
001 -> 1 |005 -> 5| 011=9
002 -> 2 |006 -> 6 | 012=10
003 -> 3 |007 -> 7 | 013=11
【例】:将八进制的37.416转换成二进制数:
3 7 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
【例】:将二进制的10110.0011 转换成八进制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.0011)2 = (26.14)8
 
与十六进制
二进制数转换成十六进制数:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分一组(不足四位数可补0),然后写出每一组二进制数所对应的十六进制数码即可。
十六进制数转换成二进制数:把每一个十六进制数转换成4位的二进制数,就得到一个二进制数。
十六进制数字与二进制数字的对应关系如下:
0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C
0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D
0010 -> 2 0110 -> 6 1010 -> A 1110 -> E
0011 -> 3 0111 -> 7 1011 -> B 1111 -> F
【例】:将十六进制数5DF.9 转换成二进制:
5 D F . 9
0101 1101 1111 .1001
即:(5DF.9)16 =(10111011111.1001)2{十六进制怎么会有小数点}
【例】:将二进制数1100001.111 转换成十六进制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16
二进制数在数字系统(比如计算机之间)中的传输的方式分为串行和并行两种。
其中串行传输时二进制数是按照逐位传递的方式进行传输,根据实际情况可以从最高位或最低位开始传输,一般情况下是从最高位开始传输的。只需要一根数据线。
并行传输的效率要高于串行传输,一次可以传输完整的一组二进制数。但是根据所要传输的二进制数的位数的多少,需要备足足够多的数据线。一般来说,常见的并行传输采用的数据线有8、16、32等,再多就很少见了。典型的并行传输例子是打印机与计算机之间的通信传输
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数快速计算方法 十进制值 十六进值
1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
1011 = 8 + 0 + 2+ 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 = 9
当我们看到 FD时,如何迅速将它转换为二进制数呢?
先转换F:
看到F,我们需知道它是15(可能你还不熟悉A~F这六个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
接着转换 D:
看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4 + 1,即:1101。
所以,FD转换为二进制数,为: 1111 1101
Author:admin | Categories:读书笔记 | Tags: