汇编-03-二进制和十六进制

汇编-03-二进制和十六进制

1. 二进制和十六进制联系

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0 - 1111
二进制
0
1
10
11
100
101
110
111
1000 十六进制
1001 a
1010 b
1100 c
1101 d
1111 e

2. 计算机基础进制转换(二进制、八进制、十进制、十六进制)

2.1 十进制转R进制

2.1.1 十进制转2进制

例题: 135D = __ B

十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

mark

​ 图1.十进制整数转二进制

解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.

十进制小数转二进制

十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

例题: 0.68D = __ B(精确到小数点后5位)

mark

2.2 十进制转8进制

思路和十进制转二进制一样,参考如下例题:

例题: 10.68D = __ Q(精确到小数点后3位)

解析:如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

mark

2.3 十进制转十六进制

思路和十进制转二进制一样,参考如下例题:

例题: 25.68D = __ H(精确到小数点后3位)

解析:如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

mark

3. R进制转十进制

3.1 二进制转十进制

例题: 1001 0110B = __ D

解析:如下图所示。得到结果:150D.

mark

3.2 八进制转十进制

八进制转十进制的方法和二进制转十进制一样。

例题: 26Q = __ D

解析:如下图所示。得到结果:22D.

mark

3.3 十六进制转十进制

例题: 23daH = __ D

解析:如下图所示。得到结果:9178D.

mark

4. 二进制转八进制

二进制转八进制的方法是:取三合一法,即从二进制的小数点为分界点,向左或者向右每三位取成一位。

例题: 1010 0100B = ____Q

解析:计算过程如下图所示。得到结果:244Q.

mark

5. 二进制转十六进制

二进制转十六进制的方法是:取四合一法,即从二进制的小数点为分界点,向左或者向右每四位取成一位。

例题: 1010 0100B = ____H

解析:计算过程如下图所示。得到结果:a4H.

mark

6. 助记

下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

1 1 1 1 1 1 1 1 B
128 64 32 16 8 4 2 1 D

注:B:二进制
D:十进制

例题: 135D = __ B

解析:有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。

135D = 128D + 7D = 1000 0000 + 0000 0111 = 1000 0111B

[参考博客链接:进制转换][https://blog.csdn.net/diyu122222/article/details/80692904?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase]

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信