



那么,二进制到底是什么呢?为了搞清楚二进制的原理,我们先尝试将 00100111 这个二进制数转换成十进制数吧。要将 二进制数 转换成十进制数,需要将二进制数的各位数字乘以其对应的位权,并将结果相加( 图 2-3 )。大家可以解释清楚为什么要使用这种方法吗?“我也不知道为什么,反正就是记住了这个方法”,这样是不行的。对于二进制转换成十进制的方法,只要理解了二进制的原理,就不需要死记硬背了。接下来,我们一边对比十进制,一边学习二进制的原理。请大家务必掌握这部分内容。
    图 2-3 二进制数转换成十进制数的方法
    首先来讲一下“位权”是什么意思。例如,对于十进制数 39,我们知道其各位的数字 3 和 9 并不仅仅表示它们本身的数值。其中 3 表示 3 × 10 30,9 表示 9 × 1 = 9。在这里,各位数字所乘的 10 和 1 就叫作
    
     位权
    
    。位不同,位权也不同。十进制的位权,从最低位开始,第 1 位是 10 的 0 次幂
    
    (= 1),第 2 位是 10 的 1 次幂(= 10),第 3 位是 10 的 2 次幂(= 100)……到这里,大家应该已经有了一个直观的认识,接下来我们把这一思路套用到二进制上。
   
    位权的概念在二进制中也是一样的。从最低位开始,第 1 位是 2 的 0 次幂(= 1),第 2 位是 2 的 1 次幂(= 2),第 3 位是 2 的 2 次幂(= 4),…,第 8 位是 2 的 7 次幂(= 128)。我们在表示位权时使用了“○○的 ×× 次幂”这种说法,其中“○○”的部分,在十进制的情况下是 10,在二进制的情况下是 2,这部分叫作
    
     基数
    
    
    。十进制就是以 10 为基数来记数的,二进制就是以 2 为基数来记数的。“○○ 的 ×× 次幂”中“××”部分的取值,无论几进制都是“位数 - 1”。第 1 位就是 1 - 1 = 0 次幂,第 2 位就是 2 - 1 = 1 次幂,第 3 位就是 3 - 1 = 2 次幂。
   
接下来讲一讲为什么要将各位的数字和位权的乘积相加。一个数所表示的数值,原本就是其各位上的数字乘以位权再相加的结果。例如,十进制数 39 就可以写成 30 + 9,这个数的大小就是其各位数字乘以位权再相加的结果。
这一点对于二进制也是一样的。二进制数 00100111 相当于十进制的 39,我们也可以把它写成 (0 × 128) + (0 × 64) + (1 × 32) + (0 × 16) + (0 × 8) + (1 × 4) + (1 × 2) + (1 × 1) = 39。这样说应该能理解了吧。