x86笔记-第 1 章 十六进制计数法

二、十、十六进制简化符号

B” 是英语单词 Binary 的首字母, 表示 二进制
D” 是英语单词 Decimal 的首字母, 表示 十进制
H” 是英语单词 Hexadecimal 的首字母, 表示 十六进制

二进制与十进制的转换

  1. 二进制 → 十进制
    比如一个二进制数 10110001,它的基数是 2,所以要这样来计算与它等值的十进制数:

10110001B=1×27+0×26+1×25+1×24+0×23+0×22+0×21+1×20=177D

  1. 十进制 → 二进制
    为了将一个十进制数转换成二进制数,可以采用将它不停地除以二进制的基数 2,直到商为 0,然后将每一步得到的余数串起来即可。如图 1-2 所示,如果要将十进制数 26 转换成二进制数,那么可采用如下方法:

图1-2
第 1 步,将 26 除以 2,商为 13,余数为 0;
第 2 步,用 13 除以 2,商为 6,余数为 1;
第 3 步,用 6 除以 2,商为 3,余数为 0;
第 4 步,用 3 除以 2,商为 1,余数为 1;
第 5 步,用 1 除以 2,商为 0,余数为 1,结束。
然后,从下往上,将每一步得到的余数串起来,从左往右书写,就是我们所要转换的二进制
数。

十进制与十六进制进制的转换

  1. 十六进制到十进制的转换
    要把一个十六进制数转换成我们熟悉的十进制数,可以采用和前面一样的方法。只不过,计算各个数位的权时,幂的底数是 16。比如将十六进制数125 转换成十进制数的方法如下:

125H=1×162+2×161+5×160=293D

  1. 十进制到十六进制的转换
    如图 1-3 所示,相应地,要把一个十进制数转换成十六进制数,则可以采取不停地除以 16并取其余数的策略。
    第 1 次,将 293 除以 16,商为 18,余 5;
    第 2 次,用 18 除以 16,商为 1,余 2;
    第 3 次,再用 1 除以 16,商为 0,余 1,结束。
    然后,从下往上,将每次的余数 1、2、5 列出来,得到 125,这就是所要的结果。
    图1-3

部分十、二和十六进制数对照表

十进制数 二进制数 十六进制数 十进制数 二进制数 十六进制数
0 0000 0 10 1010 A
1 0001 1 11 1011 B
2 0010 2 12 1100 C
3 0011 3 13 1101 D
4 0100 4 14 1110 E
5 0101 5 15 1111 F
6 0110 6 16 0001 0000
7 0111 7 17 0001 0001
8 1000 8 55 0011 0111
9 1001 9 195 1100 0011

图1-4
每一个二进制数在排版的时候,都经过了“艺术加工”,全都以 4 比特为一组的形式出现。不足 4 比特的,前面都额外加了“0”。再比如图 1-4 中的二进制数 1100 0011,它与等值的十六进制数 C3 也有着相同的对应关系。也就是说:

将一个二进制数从右往左,分成 4 比特为一组的形式,分别将每一组的值转换成十六进制数,就可以得到这个二进制数所对应的十六进制数。

附表1:可显示字符的ASCLL表

虽然不太明白这里放ascii表的作用有多大, 但有人要求了,那我还是加一个多进制显示的ascii表吧。
关于显示字符打印可以看看 CSDN:x86汇编语言 ASCII代码及其打印

04

资料参考

发布了29 篇原创文章 · 获赞 42 · 访问量 8509

猜你喜欢

转载自blog.csdn.net/qq_43068326/article/details/104247106
今日推荐