进制转换总结

前言:
在学习计算机组成原理第二章-运算方法和运算器时,遇到了进制转换问题,作为计算机学生,关于进制转换还是要清楚了解的,很早就想总结下来了,这里就记录一些计算方法.
文章大概内容:十进制,二进制,间整,小数转换

将二进制、八进制、十六进制转换为十进制

整数部分:

在这里插入图片描述

小数部分:

在这里插入图片描述

将十进制转换为二进制、八进制、十六进制:

整数部分:

十进制转换为N进制,用其数对N不断取余,直到商为零为止,然后逆序排列其余数,得到的数即是N进制后的结果:

如图所示:
将十进制数字 36926 转换成八进制的过程:
在这里插入图片描述
从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

小数部分:

十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:
把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。

如图所示:
将十进制小数 0.930908203125 转换成八进制小数的过程:
在这里插入图片描述
十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

二进制和八进制、十六进制的转换:

八进制:
八进制作为二进制的一种书写形式,其基数为8,有0~7共8个不同的数字符号,计数"逢八进一",因为r=8=2的三次方,所以只要把二进制中的三位数嘛编为一组就是一位八进制数码,两者之间的转换极为方便.

十六进制:
十六进制也是二进制的一种常用书写形式,其基数为16,“逢十六进一”.每个数为可取0~9,A,B,C,D,E,F中的任意一个,其中A,B,C,D,E,F分别表示10 ~ 15 .因为r=16=2的4次方,因此4为二进制数码与一位是十六进制数码相对应.

其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

  1. 二进制整数和八进制整数之间的转换
    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

在这里插入图片描述

从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。

八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

在这里插入图片描述

从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

  1. 二进制整数和十六进制整数之间的转换
    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

图片

从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。

十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

图片

从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。

在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

本文参考其下面文档,前人总结的非常好,为了能保存下来,另一方面让自己有个梳理的过程,我便记录下了这篇文章.
参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值