使用十进制表示数量对我们来说是非常自然和容易理解的,它的编码原则就是逢十进一
digit.gif
我们平常所说的十位、百位都隐藏着一个权重信息,我们平常所写的数字,比如238是一个简写,省略了数字背后的权重信息
weight.gif
其实我们也可以用其他进制编码数量,原则和十进制类似,为了避免眼花缭乱,我们挑几个进制演示从1自增到15的过程
radix_demo.gif
同样的数量是可以用不同进制来表示的,区别是每个位置所代表的权重和所拥有的状态不同,十进制的表达对我们人类来说更直观,二进制每个位置只有2个状态:0或1,对计算机这种擅长处理开关两种状态的机器来说简直是量身定制。
因为不同进制可以表达同一数量,当你觉得二进制的位数太长,可以将其转化成其他进制,比如四进制,可能你从来没用过
2_4.png
看看二进制到四进制转换过程:
2_4.gif
二进制到八进制,三个一组提取较低位的权重,当高位不够时用0补充:
2_8.png
二进制到八进制的过程:
2_8.gif
二进制到十六进制,我们经常用十六进制表示内存地址
2_16.png
二进制到十六进制的过程:
2_16.gif
从我们的转化表达式可以看出来,正是由于合并后的权重相同,使得二进制可以灵活向八进制、十六进制转化,而其他进制则不可以。
总结
-
对整数来说,可以用不同进制来编码同一个数,需要两个条件:权重和状态。
-
二进制的表达是一种极致,每个位置只有两种状态0,1,用最少的状态表达同样的内容,极其符合计算机的处理特性。缺点:位数太长 可读性差 弥补:使用十六进制简化表达
-
二进制-四进制-八进制-十六进制,将具有共同权重的位置合并,可以转化的根本是权重的自由转换。
网友评论