启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情
还是需要强调一遍,由于电脑对数据的判断主要依据有没有通电来记录信息的,所以计算机采用的是二进制记录信息,而我们在生活当中常常使用的是十进制,所以这里就需要聊聊进制的转换了。
进制概念
进制也就是进位计数制,是人为定义的带进位的计数方法。 所以进制就是逢几进一,r 进制就是逢 r 进一。计算机只能识别二进制,人类最习惯使用的是十进制,而为了实际需要,又建立了八进制和十六进制。八进制就是逢八进一,十六进制就是逢十六进一。
进制转换
这里着重聊一下二进制十进制转换
二进制转十进制
1、整数二进制转换为十进制:首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。
口诀:整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加。
然后把这些结果相加:
64 + 0 + 16 + 0 + 4 + 2 + 1 = 87
2、小数的二进制转换为十进制:将二进制中的四位小数分别于下边(如下图所示)对应的值相乘后相加得到的值即为换算后的十进制。
0 + 0.5 + 0 + 0.125 + 0.0625 + 0.03125 = 0.71875
3、补位
那二进制数的负数这么表示呢,可以规定一个长度,拿首位表示符号,0代表正数,1代表负数
这里规定二进制数字长度为8位
十进制转二进制
短除法
用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
结果 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
其他进制转换思路
十进制转为八进制
思路类似,十进制转为八进制和转换为二进制的方法类似,唯一变化:除数由二变成八。
这里用表格表示:
| 被除数 | 计算过程 | 商 | 余数 |
|---|---|---|---|
| 123 | 123/8 | 15 | 3 |
| 15 | 15/8 | 1 | 7 |
| 1 | 1/8 | 0 | 1 |
十进制123转换为八进制,结果为:173。
反过来八进制173转十进制:
1*64 + 7*8 + 3*1 = 123
十进制转为十六进制
十进制转十六进制也是如此,需要注意的是:十六进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
这里用表格表示:
| 被除数 | 计算过程 | 商 | 余数 |
|---|---|---|---|
| 123 | 123/16 | 7 | 11 |
| 7 | 7/16 | 0 | 7 |
十进制123转换为十六进制,结果为:7B。
反过来十六进制7B转十进制:
7*16 + 11*1 = 123
剩下的进制也可以这样算,还是请各位大佬多多指点呀。