教育改变生活

标题: 【C语言】进制转换:十进制转换为X进制 [打印本页]

作者: wander    时间: 2023-11-1 20:32
标题: 【C语言】进制转换:十进制转换为X进制
将十进制转换为二进制、八进制、十六进制将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。1) 整数部分十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:
把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。

下图演示了将十进制数字 36926 转换成八进制的过程:


从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

下图演示了将十进制数字 42 转换成二进制的过程:


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

下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:


从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

下图演示了将十进制小数 0.6875 转换成二进制小数的过程:


从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。

如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:
下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:
十进制012345678910111213141516
二进制0110111001011101111000100110101011110011011110111110000
八进制01234567101112131415161720
十六进制0123456789ABCDEF10

注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:





欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2