X86 汇编笔记:第 1 章 十六进制

问题

计算机为什么要用十六进制?

因为四位(bit)刚好就是十六进制的容量。$F_{16} = 1111_2$,这样可以简化标记,同理也存在八进制。

怎么计算十六进制到二进制?

首先看一个表,我们可以称为权重系数表:

$$ 8\ 4\ 2\ 1$$

转换就非常简单了,以 $3ABC$ 为例,只要分别计算 $3,\ A,\ B,\ C$ 的二进制,然后拼接在一起即可:$3$,显然就是 $0011$;$A$ 的话,就是 $10$,这时候我们看表,把 $10$ 从左往右带,要使得与表中数字相乘的数尽量地大:那么就是 $8\times1$,然后是 $4\times0$,然后是$2\times1$,所以答案就是 $1010$,B 就是 $1011$,C 就是 $1100$,最终答案就是 ${0011\ 1010\ 1011\ 1100}_2$。

怎么计算二进制到十六进制?

这就更简单了。比如 ${1000\ 0101\ 0111\ 1101}_2$,我们对每一组对应乘权重,比如第一组:$1000_2 = 0 \times 1 + 0 \times 2 + 0 \times 4 + 1 \times 8 = 8$;最后答案是 ${857D}_{16}$

疑问

为毛我们还要用 10 进制作为中介?为什么不直接 16 转 2 呢。其实不如把表背下来比较快。

参考文献

发表留言

本站启用了垃圾评论检测插件,如果误删请联系我~