进制转换

进制转换


进制特点

在学习四种进制转换之前先了解一下四种进制的特点

十进制:

十进制是Decimal,简写为D
都是以0-9这九个数字组成。

二进制:

二进制是Binary,简写为B
由0和1两个数字组成。

八进制:

八进制是Octal,简写为O
由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

十六进制:

十六进制为Hexadecimal,简写为H
表示方式为0x开头
计数到F后,再增加1个,就进位。
由0-9和A-F组成,英文字母A,B,C,D,E,F分别表示数字10~15。
1    2    3    4    5    6    7    8    9    A    B    C    D    E    F

相互转换:

接下来开始讲解二进制、八进制、十进制、十六进制之间的相互转换(包括整数和小数)

一、整数转换

1、十进制转二进制

(1)十进制转二进制的原理:十进制数除以2,余数为权位上的数,得到商继续除以2,直到商为0终止,然后反向取余数。

具体实现:

例如(67)10 → (1000011)2

将67除以2得商33,余数1。将商(33)作为第二次的被除数一次类推,直到商为0.

(2)十进制转八、十六进制的原理:跟十转二原理一样,十进制数除以8/16,余数为权位上的数,得到商继续除以8/16,直到商为0终止,然后反向取余数。

具体实现:

例758(十进制)→ 1366(八进制) 951(十进制)→ 3B7(十六进制)

步骤跟十进制转二进制一样。

2、二进制转十进制

方法:把二进制数按权展开、相加即得十进制数。

例题: 1001 0110B = ______ D

如下图所示,答案为150D

例题: 26Q = ______ D

如下图所示,答案为22D

例题: 23daH = ______ D

如下图所示,答案为9178D

3、二进制转八进制、十六进制

方法:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。

同理,二进制转十六进制时, 4位二进制数按权展开相加得到1位十六进制数,不足四位补0。

4、八进制转二进制

方法:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

同理,十六进制转二进制也是一样的方法

二、小数转换

1、十进制转二进制

方法:十进制小数转换成二进制小数采用“乘二取整,顺序输出”

例题: 0.618D = ______ B(精确到小数点后3位)

如下所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。

得到结果:0.101B.

同理十进制转八进制、十六进制也是一样的做法,大家可以尝试做一下例题,熟悉掌握计算流程

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

25.68D = ______ H(精确到小数点后3位)

答案:12.534Q. 19.ae1H

注意:小数进制转换有误差,并不是任何一个十进制小数都能转成有限为的二进制数

2、二进制转十进制

方法:把二进制数按权展开、相加即得十进制数。(具体操作如下)

小数转换跟普通转换类似,小数点后幂次就变成了负的。

参考文献:

爱躺平的威威https://blog.csdn.net/weixin_53564801/article/details/123665194