hello,我又来了,今天学了一下计算机组成原理,忽然觉得自己对进制转换豁然开朗,心血来潮,超级想发一个关于进制转换的文章。
是什么?
所谓进制,也就是我们小时候算数的时候,每十个手指数完就要往前面加一位数的意思。
也就是说:十进制:逢十进一
二进制 :逢二进一
八进制:逢八进一
十六进制:逢十六进一 (大于10用ABCDEF)
n进制:逢n进一
因此,引入概念:基数,十进制的基数为10.
二、八、十六转十
假设有二进制数01011010,我们在求数值的时候就是这样的。
黄色的格子 * 绿色的格子 = 橙色的格子
然后对橙色格子进行累加,得到我们的数值。
![](https://i-blog.csdnimg.cn/blog_migrate/6a70314d212801b527a0d20ea554e048.png)
从上面我们可以显然得到,我们采用的是基数的顺序累加次方。从最低位的0次方开始。
因此我们在十进制 转n进制
就会等于 Kn*(进制数)
注:这里的Kn是指 基数的位数减1次方。
十转二、八、十六
这里主要用到的是除基法。
以二进制为例 也就大概是像课本这样吧~
![](https://i-blog.csdnimg.cn/blog_migrate/ed868dab6ab6457be8e2e09bd573bf3d.jpeg)
所以 123 转换为了 0111 1011
我们在使用n进制的时候也是可以这样除的~
二进制转八、十六进制
假设我们的二进制数为 0111 1011
转化为八进制的时候,我们用的是分割法,因为我们的二进制中,每三位数的值为 8 ,因此,每三个二进制的数就能作为我们八进制数中的一位数。当不足3的倍数的时候,往前面补0
所以转换后就变成了 173
十六进制同理可得。
csdn都快变成我的笔记了,啊啊啊~写笔记啊~