我们都知道,计算机只能识别二进制指令,任何十进制的数字都会转换成二进制再计算。因为在计算机的存储单元——晶体管中高电位代表1低电位代表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 |
… | … |
32 | 100000 |
… | … |
64 | 1000000 |
… | … |
128 | 10000000 |
怎么样?看出规律了吗?
我们发现:
2的n次幂的二进制就是1后面有n个零。
即 2 n 2^n 2n(十进制)的二进制是10…0(n个零)
举例:
2的1次方(2)的二进制就是10
2的2次方(4)的二进制就是100
2的3次方(8)的二进制就是1000
2的5次方(32)的二进制就是100000
2的6次方(64)的二进制就是1000000
2的10次方(1024)的二进制就是10000000000.
我们还可以进一步发现:
2的n次幂减1的二进制就是n个1
即 2 n − 1 2^n-1 2n−1(十进制)的二进制是1…1(n个1)
举例:
2的1次方减1(1)的二进制就是1
2的2次方减1(3)的二进制就是11
2的3次方减1(7)的二进制就是111
2的5次方减1(31)的二进制就是11111
2的6次方减1(63)的二进制就是111111
2的10次方减1(1023)的二进制就是1111111111.
其实跟十进制一样,十进制中10的n次幂就是1后面n个零。比如10的3次方,就是1000。10的8次方就是100000000(1后面8个零)。而10的8次方再减1就是99999999(8个9)。
那么进入正题,给一个十进制数如何口算成二进制呢?
有了上面两个结论,就很简单了。
如果这个数刚好是2的n次幂,或者2的n次幂减1,那么我们直接就能算出它的二制制。如何不是这两个情况,该如何算呢?那么就需要我们进行拆分了。
举例,给一个十进制数100,它的二进制如何口算呢?100就是64加上32再加4,即
100=64+32+4=
2
6
+
2
5
+
2
2
2^6+2^5+2^2
26+25+22
64的二进制是1000000,32的二进制是100000,4的二进制是100
三个数相加就是1000000+100000+100
结果不就是1100100吗?那么100的二进制不就是1100100吗?
再举个例子,给一个十进制数88(随便想的),它的二进制如何算呢?
88=64+24=64+16+8=
2
6
+
2
4
+
2
3
2^6+2^4+2^3
26+24+23
对应二进制就是1000000+10000+1000=1011000.
88的二进制就是1011000.
再举个例子,1000的二进制是多少呢?
1000=512+256+128+64+32+8=
2
9
+
2
8
+
2
7
+
2
6
+
2
5
+
2
3
2^9+2^8+2^7+2^6+2^5+2^3
29+28+27+26+25+23
换成对应二进制即
1000000000+100000000+10000000+1000000+100000+1000=1111101000。
再举个例子,99的二进制怎么算呢?99=100-1呀,100的二进制是1100100,减1就是1100011。63的二进制是多少呢?63=64-1,即6个1:111111。
会算了吗?其实主要还是进行拆分。我们以前算二进制都是要打草稿的,现在掌握了这个规律就不用打草稿了吧?哈哈,一下子可以节省好多草稿纸哟,可以收获好多绿色能量呀!又为环保做出了贡献。
微信公众号:devnn 。扫一扫关注,获取最新推送。