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

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

十进制数二进制数十六进制数十进制数二进制数十六进制数
000000101010A
100011111011B
200102121100C
300113131101D
401004141110E
501015151111F
6011061600010000
7011171700010001
8100085500110111
91001919511000011

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

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

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

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

04

资料参考

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MoMing丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值