【数据结构】进制转换

进制转换

将八进制数字 423.5176 转换成十进制:
423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

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

整数部分和小数部分的算法不一样

整数部分:除 N 取余,逆序排列
  • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
  • 保留余数,用商继续除以 N,又得到一个新的商和余数;
  • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。
    先得余数作为 N 进制数的低位数字,后得余数作为 N 进制数的高位数字,依次排列,得到 N 进制数字。
    例:十进制数字 36926 转换成八进制
    十进制转八进制
小数部分:乘 N 取整,顺序排列
  • 用 N 乘以十进制小数,得到一个积;
  • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
  • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
  • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。
    把取出的整数部分按顺序排列,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,得到 N 进制小数。
    例:将十进制小数 0.930908203125 转换成八进制小数的过程
    十进制小数转八进制小数
    从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

十进制小数转换八进制小数
十进制小数 0.6875 转换成二进制小数的结果为 0.1011

如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换, 然后再合并在一起即可。例如:
十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;
十进制数字 42.6875 转换成二进制的结果为 101010.1011。

注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:
十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111…,是一个循环小数;
十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110…,是一个循环小数;


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值