进制转换细解
前言
进制之间的转换在C语言的学习也是非常重要的,因为电脑是二进制算法而不是我们常用的十进制算法
一、常见的几种进制是什么?
1.二进制: 由0和1两个数字组成。二进制是Binary,简写为B。
2.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。八进制是Octal,简写为O。
3.十进制: 都是以0-9这九个数字组成,不能以0开头。十进制为Decimal,简写为D。
4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。十六进制为Hexadecimal,简写为H。
二、十进制转换为二进制、八进制、十六进制
1.整数
(1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。
(2)具体做法:
将某个十进制数除2得到的整数部分保留,作为第二次除2时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。
例如:9(十进制)→1001(二进制)
具体做法为:
其余的转换都和这个方法一模一样不同的是,转换成哪种进制的就除几
2.小数
原理:十进制小数转换成二进制小数采用 “乘2取整,顺序输出” 法。
例题: 0.68D = ______ B(精确到小数点后5位)
如下所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.
例如:十进制小数0.68转换为二进制数
具体步骤:
0.68* 2=1.36 -->1
0.36* 2=0.72 -->0
0.72* 2=1.44 -->1
0.44* 2=0.88–>0
0.88* 2=1.76 -->1
已经达到了题目要求的精度,最后将取出的整数部分顺序输出即可
则为:0.68D–>0.10101B
其余的进制方法差不多只需要将数字更换即可
三、二进制、八进制、十六进制转换为十进制
1.整数
例如:11的二进制为1011,所以得出以下算式
其余的进制方法差不多只需要将数字更换即可
2.小数
例如:90.25的二进制为01011010.01,所以得出以下算式
其余的进制方法差不多只需要将数字更换即可
四、八进制、十六进制转换成二进制
1、八进制数转换成二进制
原理:八进制数的一位是二进制数的三位
例题:37.416O转化为011 111.100 001 110B
3 7 . 4 1 6
011 111 . 100 001 110
其实就是把八进制的每个数字再进行二进制的细分,把一个数字变成三个
2、十六进制数转换成二进制
原理:十六进制数的一位是二进制数的四位
例题:5DF.9H转化为0101 1101 1111 . 1001
5 D F . 9
0101 1101 1111 . 1001
其实就是把十六进制的每个数字再进行二进制的细分,把一个数字变成四个
总结
对于进制的转换方法并不难,只需要掌握其中的运算法则即可,对于八进制转换为十六进制和十六进制转换为八进制可以借用先转换为二进制或者十进制作为媒介即可,希望此篇文章对大家有所帮助。