二进制数据是用0和1两个数码来表示的数。它的基数为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,……,
可见二进制的10表示二,100表示四,1000表示八,10000表示十六,……。
二进制同样是“位值制”。同一个数码1,在不同数位上表示的数值是不同的。如11111,从右往左数,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。用大家熟悉的十进制说明这个二进制数的含意,有以下关系式
(11111)(二进制)=1×2^4 1×2^3 1×2^2 1×2 1^0(十进制)(^代表次方,例如:1的2次方等于1^2)
一个二进制整数,从右边第一位起,各位的计数单位分别是1,2,22,23,…,2n,…。
计算机中的二进制计算机内部之所以采用二进制,其主要原因是二进制具有以下优点:
(1)技术上容易实现。用双稳态电路表示二进制数字0和1是很容易的事情。
(2)可靠性高。二进制中只使用0和1两个数字,传输和处理时不易出错,因而可以保障计算机具有很高的可靠性。
(3)运算规则简单。与十进制数相比,二进制数的运算规则要简单得多,这不仅可以使运算器的结构得到简化,而且有利于提高运算速度。
(4)与逻辑量相吻合。二进制数0和1正好与逻辑量“真”和“假”相对应,因此用二进制数表示二值逻辑显得十分自然。
(5)二进制数与十进制数之间的转换相当容易。人们使用计算机时可以仍然使用自己所习惯的十进制数,而计算机将其自动转换成二进制数存储和处理,输出处理结果时又将二进制数自动转换成十进制数,这给工作带来极大的方便。
各进制相互转换计算机中常用的数的进制主要有:二进制、八进制、十六进制。
2进制,用两个阿拉伯数字:0、1;
8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:0到9;
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
以下简介各种进制之间的转换方法:
二进制转换十进制二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成十进制
从右往左开始换算
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0
公式:第N位2(N)
---------------------------
100
用横式计算为:
0 * 20 0 * 21 1 * 22 0 * 23 0 * 24 1 * 25 1* 26 0 * 27 = 100
除0以外的数字0次方都是1,但0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 1 * 25 1*26 = 100
二进制换算八进制例:二进制的“10110111011”
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:
010 = 2
110 = 4 2 = 6
111 = 4 2 1 = 7
011 = 2 1 = 3
结果为:2673
二进制转换十六进制十六进制换二进制的方法也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4 1 = 5
1011 = 8 2 1 = 11(由于10为A,所以11即B)
1011 = 8 2 1 = 11(由于10为A,所以11即B)
结果为:5BB
八进制数转换为十进制数八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512
--------------------------
839
同样,我们也可以用横式直接计算:
7 * 80 0 * 81 5 * 82 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
十六进制转换十进制例:2AF5换算成10进制
例:2AF5换算成10进制
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192
-------------------------------------
10997
直接计算就是:
5 * 160 F * 161 A * 162 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
十进制转二进制十进制整数转二进制数:"除以2取余,逆序输出"
例: (53)10=(110101)2
十进制转二进制;二进制的基为2,n进制的基为n。
八进制与二进制的转换例:将八进制的37.416转换成二进制数:
37 . 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.011)2 =(26.14)8
十六进制与二进制的转换例:将十六进制数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
十进制转八进制10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。
来看一个例子,如何将十进制数120转换成八进制数。
用表格表示:
被除数 |
计算过程 |
商 |
余数 |
120 |
120/8 |
15 |
0 |
15 |
15/8 |
1 |
7 |
1 |
1/8 |
0 |
1 |
120转换为8进制,结果为:170。
注:在实际过程中为了方便快速的转换各进制,建议使用电脑计算器或程序员计算器,在此只做了解原理和方法。
,