二进制世界的秘密

我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?二进制数如何表示负数呢?本文将一一为你揭晓 。
 
为什么用二进制表示我们大家知道,计算机内部是由IC电子元件组成的,其中 CPU内存也是 IC 电子元件的一种,CPU和内存图如下

二进制世界的秘密

文章插图
CPU
二进制世界的秘密

文章插图
内存
CPU 和 内存使用IC电子元件作为基本单元,IC电子元件有不同种形状,但是其内部的组成单元称为一个个的引脚 。有人说CPU 和 内存内部都是超大规模集成电路,其实IC 就是集成电路(Integrated Circuit) 。
二进制世界的秘密

文章插图
IC元件切面图
IC元件两侧排列的四方形块就是引脚,IC的所有引脚,只有两种电压: 0V5V,IC的这种特性,也就决定了计算机的信息处理只能用 0 和 1 表示,也就是二进制来处理 。一个引脚可以表示一个 0 或 1 ,所以二进制的表示方式就变成 0、1、10、11、100、101等,虽然二进制数并不是专门为 引脚 来设计的,但是和 IC引脚的特性非常吻合 。
计算机的最小集成单位为 ,也就是比特(bit),二进制数的位数一般为 8位、16位、32位、64位,也就是 8 的倍数,为什么要跟 8 扯上关系呢?因为在计算机中,把 8 位二进制数称为一个字节, 一个字节有 8 位,也就是由 8个bit构成 。
为什么1个字节等于8位呢?因为 8 位能够涵盖所有的字符编码,这个记住就可以了 。
字节是最基本的计量单位,位是最小单位 。
用字节处理数据时,如果数字小于存储数据的字节数 ( = 二进制的位数),那么高位就用 0 填补,高位和数学的数字表示是一样的,左侧表示高位,右侧表示低位 。比如 这个六位数用二进制数来表示就是100111,只有6位,高位需要用 0 填充,填充完后是00100111,占一个字节,如果用 16 位表示 就是0000 0000 0010 0111占用两个字节 。
我们一般口述的 32 位和 64位的计算机一般就指的是处理位数,32 位一次可以表示 4个字节,64位一次可以表示8个字节的二进制数 。
我们一般在软件开发中用十进制数表示的逻辑运算等,也会被计算机转换为二进制数处理 。对于二进制数,计算机不会区分他是 图片、音频文件还是数字,这些都是一些数据的结合体 。
 
什么是二进制数那么什么是二进制数呢?为了说明这个问题,我们先把 00100111这个数转换为十进制数看一下,二进制数转换为十进制数,直接将各位置上的值 * 位权即可,那么我们将上面的数值进行转换
二进制世界的秘密

文章插图
二进制转十进制表示图
也就是说,二进制数代表的 00100111转换成十进制就是 39,这个 39 并不是 3 和 9 两个数字连着写,而是 3 * 10 + 9 * 1,这里面的10 , 1就是位权,以此类推,上述例子中的位权从高位到低位依次就是7 6 5 4 3 2 1 0 。这个位权也叫做次幂,那么最高位就是2的7次幂,2的6次幂 等等 。二进制数的运算每次都会以2为底,这个2 指得就是基数,那么十进制数的基数也就是 10。在任何情况下位权的值都是数的位数 - 1,那么第一位的位权就是 1 - 1 = 0, 第二位的位权就睡 2 - 1 = 1,以此类推 。
那么我们所说的二进制数其实就是 用0和1两个数字来表示的数,它的基数为2,它的数值就是每个数的位数 * 位权再求和得到的结果,我们一般来说数值指的就是十进制数,那么它的数值就是 3 * 10 + 9 * 1 = 39 。
 
移位运算和乘除的关系在了解过二进制之后,下面我们来看一下二进制的运算,和十进制数一样,加减乘除也适用于二进制数,只要注意逢 2 进位即可 。二进制数的运算,也是计算机程序所特有的运算,因此了解二进制的运算是必须要掌握的 。
首先我们来介绍移位运算,移位运算是指将二进制的数值的各个位置上的元素坐左移和右移操作,见下图
二进制世界的秘密

文章插图
移位过程


推荐阅读