计算机输出各类文字,图片,视频,程序运行结果等一切东西,看起来是个丰富多彩的世界,然而计算机并不像咱们看到的那样聪明,它的功能强大得益于人类编写的程序、软件。在全部丰富多彩的表象下,一切系统,程序,图片等都由0和1组成。一张图片是一串由0和1组成的序列,一个程序也是由0和1组成的一串序列。这种只使用0和1来计数、记录的方法叫作二进制。与之相对应的,人类使用的是十进制,使用0-9来计数。二进制跟十进制很类似,经过与咱们熟悉的十进制的比较,咱们能够理解二进制系统的运做。git
当咱们使用十进制计数的时候,当数到9再没有别的符号来表示第十个时,咱们会在个位上填0,而后在十位上填1,获得10。当数到99时,没法用两位数字表示第一百个数字时,就会在个位和十位上分别填0,在百位上填1,获得100。如此循环往复,咱们就能够用0,1,2,3,4,5,6,7,8,9十个符号来表示任何数字。 github
那么当使用二进制,也即只使用0和1来计数时,每个位权都是2的次方,从低位到高位,从2的零次方开始,依次为1,2,4,8,16,32,64……把一个二进制数转换为十进制数很简单,如上图中的二进制数10110,经过1×16+0×8+1×4+1×2+1×0获得22,二进制数0转换为十进制数不变,二进制数1转换为十进制数不变,二进制数10转换为十进制数为2,二进制数11转换为十进制数为3。 算法
相似于十进制数的一位数,两位数,三位数,四位数……来表达一个数有多少位,在计算机应用二进制数时,一位二进制数被叫作一比特(1bit),两位二进制数就能够称为两比特(2bits),三位二进制数称为三比特(3bits)……为了简便,又把八位二进制数(8bits)称为一个字节(1Byte)。编码
人类只是使用十进制数来计数,作数学相关的应用,而二进制就不一样了,计算机用它来计数、计算,执行指令,存储东西、程序,表示颜色,显示图片、视频,那么这是怎么作到的呢,答案是经过编码。编码就是经过一一映射,将两种毫无关联的东西联系起来,而且用一种东西来表明另外一种东西,这是一种人为的设计。计算机世界里最著名的编码要算ASCII码了,经过设计,键盘上的大部分字母和符号都跟某个八位的二进制数捆绑(映射)在一块儿,这样当咱们输入一些英文时,电脑实际作的倒是把跟这些英文一一对应的二进制数存储在内存里或者硬盘上。经过各类不一样的编码,电脑仅仅使用0和1就能表明任何东西了。当人类想从电脑中获得相关信息而且但愿可以看得懂时,会有相应的程序来经过解码(编码的逆运算)的方式显示出来。设计
为何计算机要采用二进制而不是采用人们所熟悉的十进制呢?咱们知道,计算机是由各类电子元器件组成,并由电流驱动的。最先的晶体管只具备两种状态,磁盘上的一个存储点的磁极也具备两种状态,磁极的南跟北,电子元器件的电平也具备两种状态,高和低,这正好跟二进制的一个位所能表明的状态所吻合,从物理的角度讲,易于元器件的制做,只有两种状态,也易于电脑内部清晰的传递信息(不容易出错)。另外,0和1正好对应逻辑上的真和假,用二进制表示二值逻辑很天然。最后,二进制的运算法则较为简单,可以简化电脑硬件结构。cdn
欢迎浏览个人我的博客,https://diwugebingren.github.io 视频