汇编每天1分钟 (1) | 多进制之间的转化

我们生活中使用的数字,比如10、12、15、121等。这些都是以十进制表示,也就是逢十进一:

以121为例,10^2*1 + 10^1*2 + 10^0*1 = 121(10^2表示10的二次方,同100)

计算过程,如图1-1:

图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:


图2-1,二进制1111001最终转化为10进制为121

我们都知道0乘任何数字都为0,所以我们计算时过滤0的位置,如图2-2:


图2-2,去掉0所在位置,快速计算过程

十进制121也有快速算出二进制的方式:

首先我们上坐标轴,如图2-3:


图2-3

121可以拆成64+57,我们往64位置补1,如图2-4:


图2-4

我们接着拆57 = 32+25,我们往32的位置补1,如图2-5:


图2-5

我们快进,25=16+8+1,最终得出结果,如图2-6:


图2-6

十六进制

十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字,例如:1AH,H表示十六进制单位。

首先呢,先要看看十六位数的表示方法,如图3-1:


图3-1

16=2^4,因此每个十六进制位对应4位二进制,如图3-2:


图3-2

所以,十六进制转二进制简直不要太简单,19AE = 0001 1001 1010 1110

同理,二进制转十六进制,1010000101 = 10  1000  0101  = 285

你可能感兴趣的:(汇编每天1分钟 (1) | 多进制之间的转化)