据说这世界上有10种人,一种是懂二进制的,一种是不懂的.相信很多小伙伴都熟悉这句话,不错,这是我们程序员来调侃那些不懂二进制的人.好了,不卖关子了,下面就为大家来详细介绍下二进制.


  1. 二进制最早是由德国数学家莱布尼兹发明的.由于二进制只有数字0和1组成,很容易在电路上进行实现.比如说通电用1来表示,断电用0来表示.后来一些科学家们就根据这个制造出了计算机.用我们这行的话来说,计算机既是最笨的,也是最聪明的.说他笨因为他只认0和1,说他聪明,他却可以在极短时间内完成大量复杂运算.像我们今天存储在手机,电脑,U盘中的音乐,视频,照片文档等,他们的底层都是由0和1组成的二进制序列.
  2. 二进制和我们生活中用到的十进制类似,原理其实都差不多.十进制是满十进一.只不过二进制是满二进一.其他有关加减运算和十进制类似,在这就不多赘述了.当然了,除了二进制,还有8进制,16进制等等…
  3. 在之前的文章中介绍过一个字节是8 bit,这8bit 就是二进制组成的,换句话说, 一个字节是由8个0或1的序列组成.下面我简单介绍下十进制和二进制的对应关系:

二进制制品仓库 是什么 二进制虫_算法


当然了,这只是一部分,只有掌握了转换办法,才能遇见一个就解决一个.

4.举个例子:十进制1234为什么是1234.从数学角度来说,1234的个位是10的0次方,十位是10的1次方,百位是10的二次方,千位是10的三次方…以此类推.紧接着我们就得到一个运算公式:
1234 = 4*(10^0) + 3*(10^1) + 2*(10^2) + 1*(10^3);
1234的个位权重是10的0次方,1231的十位权重是10的1次方…

5.上面我们说过,十进制和二进制有很大的相似性.在二进制中,也有相似的权重.
举个例子:二进制数字 0001 0110;
我们规定从右到左依次是低位到高位.
那么 这个二进制数字转化成十进制就是 (22) = 1*(2^1) + 1*(2^2) + 1*(2^4);
再举个例子:二进制数字 0011 0111;
转化成十进制: (55) = 1*(2^0) + 1*(2^1) + 1*(2^2) + 1*(2^4) + 1*(2^5);

以上是二进制转十进制,大同小异,十进制转二进制反过来就行了.这里同样为大家举几个例子.

  1. 十进制数字67转二进制: 67 = 2^6 + 2^1 +2^0; 转成二进制就是01000011 (一个整型32个比特位,我这为了方便只显示8个,剩下的可以自行补).
    十进制数字89转二进制: 89 = 2^6 + 2^4 + 2^3 + 2^0;
    pai
    7.为了方便小伙伴们记忆,一些常用数字还是要记的.上学时我们记过 兀≈3.14等数据.
    如果想要更快的计算二进制到十进制的相互转换.我罗列了一些常用的数值,有兴趣的小伙伴可以记一下:
    2^3 = 8;
    2^4 =16;
    2^5 = 32;
    2^6 = 64;
    2^7 =128;
    2^8 =256;
    2^9 =512;
    2^10 =1024;
    说到这我想给大家普及或者解释一个生活中的小细节.我们经常会购买一些电子产品,电脑,手机之类,不知道大家注意过没,厂家明明标注是64G,256G,甚至1T,但是这些往往都达不到标注大小.按照计算机储存单位大小来说1TB= 1024GB; 1GB= 1024MB; 1MB= 1024KB;但是厂商为了方便计算,往往会把各单位之间的进率换成1000;这样一下我们的储存空间达不到标注大小就有一个合理的解释了.