我们生活中使用的数字,比如10、12、15、121等。这些都是以十进制表示,也就是逢十进一:
以121为例,10^2*1 + 10^1*2 + 10^0*1 = 121(10^2表示10的二次方,同100)
计算过程,如图1-1:
但作为IT人员,我们可能要熟悉多种进制,例如二进制、十六进制。
二进制
二进制是计算技术中广泛采用的一种数制,也是机器唯一能懂的语言,像我们目前主流使用的c++、php、java最终都要翻译成二进制,再让机器识别。它们的长相就像这样“1111001”,我们都熟悉十进制是逢十进一,因此二进制其实就是逢二进一,例如:1001 + 0001 = 1010。
以二进制1111001为例,还原成10进制,2^6*1 + 2^5*1 + 2^4*1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1 = 121
计算过程,如图2-1:
我们都知道0乘任何数字都为0,所以我们计算时过滤0的位置,如图2-2:
十进制121也有快速算出二进制的方式:
首先我们上坐标轴,如图2-3:
121可以拆成64+57,我们往64位置补1,如图2-4:
我们接着拆57 = 32+25,我们往32的位置补1,如图2-5:
我们快进,25=16+8+1,最终得出结果,如图2-6:
十六进制
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字,例如:1AH,H表示十六进制单位。
首先呢,先要看看十六位数的表示方法,如图3-1:
16=2^4,因此每个十六进制位对应4位二进制,如图3-2:
所以,十六进制转二进制简直不要太简单,19AE = 0001 1001 1010 1110
同理,二进制转十六进制,1010000101 = 10 1000 0101 = 285