进制转化

刚学习计算机组成原理的时候会遇到这个,一开始觉得这个转换挺简单的,然后做了做突然发现它还有带小数点的,而且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 八进制 → 十六进制

建议先转化成二进制,然后再转化成十六进制。不建议用取余运算。

总结

  • 转化成十进制的时候,只是每位乘以对应的权重,然后将所有的数加起来。权重根据几进制转化为十进制判断。

  • 八进制和十六进制之间的转换,建议先转换为中间二进制数,然后再进行转化,比较简单。

THE END