进制转化
刚学习计算机组成原理的时候会遇到这个,一开始觉得这个转换挺简单的,然后做了做突然发现它还有带小数点的,而且4个进制之间随意的进行转换。搞得我头都大了,真是的啊!!!然后我闭关1小时,写出了这个总结,来让大家也逃出进制之间转换的苦海。
正文
1 转换成二进制
1.1 八进制 → 二进制
从左到右每一个八进制数转换成3位二进制数。
例如:75 转换成 二进制,先将7转换成111,再将5转换成101,所以75转换成二进制就是111101。
1.2 十进制 → 二进制
-
整数部分
十进制转化为二进制应该大家都会吧,我在这里也讲一下吧,老师是用的取余运算,我感觉这个有点复杂,就讲我自己平时怎么做的了。
例如 10 转化为二进制,首先10=8+2,这里都转化成2的次幂形式,直接8的二进制位1000,然后加上2的二进制位0010,所以10的二进制数是1010。 -
小数部分
小数部分转化成二进制,就是乘2取整然后依照取整顺序输出。这里贴个图更好的理解。(图来源:菜鸟教程)
1.3 十六进制 → 二进制
- 十六进制的类似于八进制,只是一位16进制数代表4位二进制数(其实也挺好理解的,就是4位二进制数的最大能表示15,刚好是没有16)
2 转换成八进制
2.1 二进制 → 八进制
- 相当于八进制转化成二进制的逆操作,从左到右每三位二进制数生成一位八进制数。
例如111101转化成二进制,首先将111转化成八进制7,再将101转化成八进制5,最后转换成了75。
2.3 十进制 → 八进制
-
整数部分
建议用间接法比较好,先转化成二进制,然后再转化成八进制。(多次试验的惨痛经验) -
小数部分
和十进制小数部分转化成二进制差不多,只是这里是乘8取整。这里就不再过多解释了。
2.4 十六进制 → 八进制
也是建议用间接法,先转化成二进制,然后再转化成八进制,这我感觉是最简单的办法了,如果有更好的办法欢迎大家在评论区里评论。
3 转化成十进制
3.1 二进制 → 十进制
设n为二进制的当前位数,2^n-1代表每位的权重,转化时候只需要将每位乘以对应的权重,最后再全部加起来就行了。我这里举个例子,就会了。
3.2 八进制 → 十进制
和二进制转化为十进制大同小异,只是权重变成了8^n-1
3.3 十六进制 → 十进制
和二进制转化为十进制大同小异,只是权重变成了16^n-1
4 转化成十六进制
4.1 二进制 → 十六进制
和二进制转化为八进制大同小异,只是从左到右每4位转换成一位十六进制的数。这里不再多说了。
4.2 十进制 → 十六进制
建议先转化成二进制,然后再转化成十六进制。
4.3 八进制 → 十六进制
建议先转化成二进制,然后再转化成十六进制。不建议用取余运算。
总结
-
转化成十进制的时候,只是每位乘以对应的权重,然后将所有的数加起来。权重根据几进制转化为十进制判断。
-
八进制和十六进制之间的转换,建议先转换为中间二进制数,然后再进行转化,比较简单。
作者:徐锦桐
链接:https://www.xujintong.com/2023/02/12/157/
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)