细聊进制转换

285 阅读3分钟

启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

还是需要强调一遍,由于电脑对数据的判断主要依据有没有通电来记录信息的,所以计算机采用的是二进制记录信息,而我们在生活当中常常使用的是十进制,所以这里就需要聊聊进制的转换了。

进制概念

进制也就是进位计数制,是人为定义的带进位的计数方法。 所以进制就是逢几进一,r 进制就是逢 r 进一。计算机只能识别二进制,人类最习惯使用的是十进制,而为了实际需要,又建立了八进制和十六进制。八进制就是逢八进一,十六进制就是逢十六进一。

进制转换

这里着重聊一下二进制十进制转换

二进制转十进制

1、整数二进制转换为十进制:首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。

口诀:整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加。

image-20221202075451223.png 然后把这些结果相加:

64 + 0 + 16 + 0 + 4 + 2 + 1 = 87

2、小数的二进制转换为十进制:将二进制中的四位小数分别于下边(如下图所示)对应的值相乘后相加得到的值即为换算后的十进制。

image-20221202082239594.png

0 + 0.5 + 0 + 0.125 + 0.0625 + 0.03125 = 0.71875

3、补位

那二进制数的负数这么表示呢,可以规定一个长度,拿首位表示符号,0代表正数,1代表负数

这里规定二进制数字长度为8位

image-20221202081606954.png

十进制转二进制

短除法

用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

image-20221202085146990.png

结果 1111011

幂方和

123 = 64 + 59

= 64 + 32 + 27

= 64 + 32 + 16+11

= 64 + 32 + 16 + 8 + 3

= 64 + 32 + 16 + 8 + 2 + 1

=1×2^6 + 1×2^5 + 1×2^4 + 1×2^3 + 0×2*2 + 1×2^1 + 1×2^0

=1111011

其他进制转换思路

十进制转为八进制

思路类似,十进制转为八进制和转换为二进制的方法类似,唯一变化:除数由二变成八。

这里用表格表示:

被除数计算过程余数
123123/8153
1515/817
11/801

十进制123转换为八进制,结果为:173。

反过来八进制173转十进制:

image-20221202085926903.png

1*64 + 7*8 + 3*1 = 123

十进制转为十六进制

十进制转十六进制也是如此,需要注意的是:十六进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

这里用表格表示:

被除数计算过程余数
123123/16711
77/1607

十进制123转换为十六进制,结果为:7B。

反过来十六进制7B转十进制:

image-20221202090808506.png

7*16 + 11*1 = 123

剩下的进制也可以这样算,还是请各位大佬多多指点呀。