二进制转换为二进制数的方式(二进制多进制转换再也不怕啦)
二进制转换为二进制数的方式(二进制多进制转换再也不怕啦)看上表,当二进制产生进位时,代表的十进制数为2、4、8、16、32、64、128...其实这是从十进制的角度看二进制各位数得出的名称。十进制可以有多位组成,从右向左依次为个位、十位、百位、千位、万位...于此类似,那么二进制也可以由多位数组成,从右向左分别为1位、2位、4位、8位、16位...为什么称二进制的位数为1位、2位、4位...
生活中,人脑对很多事物都形成了条件反射,比如数字,习惯了十进制的我们可以很方便的对数字25、27进行大小比较和数值运算,却很难对二进制数字11001、11011有直观的感受。
其实想要弄清楚这些进制很简单,十进制各位都很熟悉,那先从十进制入手。
十进制计数规则是:
- 基数为10。
- 有10个数字,0、1、2、3、4、5、6、7、8、9。
- 逢10进1,借1当10。
那么,二进制计数规则就是:
- 基数为2。
- 有2个数字,即0和1。
- 逢2进1,借1当2。
十进制可以有多位组成,从右向左依次为个位、十位、百位、千位、万位...
于此类似,那么二进制也可以由多位数组成,从右向左分别为1位、2位、4位、8位、16位...
为什么称二进制的位数为1位、2位、4位...
其实这是从十进制的角度看二进制各位数得出的名称。
看上表,当二进制产生进位时,代表的十进制数为2、4、8、16、32、64、128...
二进制虽然只有0和1两个数字,但是由于数字所处的位置不同,表示的数据也不同,例如:
二进制数 “1011”
这个二进制数共有4位,由3个1和1个0组成,比如数字1所处位置不同,所代表的大小也不同,其所处位置称作权。从右向左顺序各个位表示十进制的含义:
第一个1表示:1的个数
第二个1表示:2的个数
第三个0表示:4的个数
第四个1表示:8的个数
(在此可以类比十进制1011,由1个1000,0个100,1个10,1个1组成。)
所以,二进制数1011由1个8,0个4,1个2,1个1组成。按各位的权列出:
按这种权展开式可以很方便将二进制转换为十进制。
相应的,十进制转换成二进制整数就通常采用“除2取余,逆序排列”的方法。具体做法是用2整除十进制整数,可以得到一个商和余数,再用2去除商,又会得到一个商和余数,如此反复,直到商为0停止。再把先得到的余数作为二进制低位有效位,后得到的余数作为二进制高位有效位,依次排列。
举个栗子:
将十进制“11”转换为二进制。
将十进制11转换为二进制数为1011。
和十进制相比,二进制的运算规则也就简单多了。
加法
二进制运算只会有以下4种可能:
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 10
(逢二进一)
对于多位数二进制相加,考虑进位采用“逢2进1”的方式,例如十进制25(二进制11001)加上十进制27(二进制11011):
减法
也只有4种可能:
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1
(借一当二)
乘法
十进制可以按照九九乘法表运算,二进制乘法规则就简单多了,也有4种情况:
0 × 0 = 0
1 × 0 = 0
0 × 1 = 0
1 × 1 = 1
二进制乘法也可以很简单转换为加法运算,例如十进制25(二进制11001)乘以十进制5(二进制101)。
除法
除法是乘法的逆运算,二进制乘法有4种,除法也是应该对应4种,考虑0作为除数是没有意义的。所以除法有以下两种:
0 ÷ 1 = 0
1 ÷ 1 = 1
例如十进制25(二进制11001)除以十进制5(二进制101)。
比较复杂的乘法和除法运算都能简单的转换为加、减和位移操作,所以一般计算机也只需要设计一个加法器即可。
二进制弄清楚了,八进制也就很好懂了。
其实很早,古人就明白了八进制的概念,比如八卦...
八卦最初就是古人的记事符号,只是后来作为占卜工具被打上封建迷信的标志。
其中隐含着二进制和八进制的概念。
八卦的基本元素就是阴和阳,相当于二进制中的0和1。
下图中用长实线代表“阳”,用中间断开的线代表“阴”,然后由3种这样的线条组成8种形状,相当于3位二进制数表示8种状态。
当然,八进制计数不可能用八卦表示,通常采用0-7的阿拉伯数字表示
八进制的计数规则:
- 基数为8。
- 由8个数字组成,分别是0、1、2、3、4、5、6、7。
- 逢8进1,借1当8。
十六进制,在古代中国当时使用的重量单位就是十六进制,16两为1斤,就有了所谓的“半斤八两”。
同样十六进制的计数规则为:
- 基数为16。
- 由16个数字符号组成,分别是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
- 逢16进1,借1当16。
各种进制的转换
前面二进制和十进制相互转换的方法,同样适用于其他进制的数转换为十进制。
“按权展开”—其他进制转换为十进制(B表示各进制的基数,n表示位数):
例如十六进制数BC0D转换为十进制:
“除基数B取余,逆序排列”方法可以将十进制数转换为任意进制数。
二进制和八进制、十六进制数的转换可以采用更简单的方法。
二进制转换为八进制,采用“3位并1位”,按从右向左方向,每3位二进制位一组,最高位不足3位,添0补足3位,然后将各组3位二进制数加权展开,得到八进制数。
将八进制转换为二进制采用相反的操作“1位拆3位”。
类似的,十六进制和二进制转换为“4位并1位”,“1位拆4位”的方法。