算法回顾一(浮点数进制转换)

c语言基础部分跳过了,简单计算题也跳过了,重点关注一下数据结构和算法。另外,关于《程序设计导引及在线实践》里面的例子和练习貌似不是来自于poj,而是百练http://bailian.openjudge.cn/。openjudge是个好网站,还发现另一个好网站ACM之家http://www.acmerblog.com/category/basis/simulate
所以接下来直接在百练提交就行。

看看第一个基础项目:进制转换。建议先看完书中的介绍和例子,我是撸完了题目再来总结的。

例题 确定进制 1331
例题 Skew Binary 1565
练习题 十进制到八进制(ai2734)
练习题 八进制到十进制(ai2735)
练习题 2进制转化为 16 进制(ai2798) Runtime Error //这道题一直报这个不知道问题在哪
练习题 八进制小数(ai2765)

在撸题的过程中总结了以下几点:
1.首先这类题目涉及的数字都是很长的,为了避免超出范围以及方便处理,通常都是用char[]数组来保存输入的。字符转换为数字也非常方便,减去’0’就行,比如’9’-‘0’=9。

2.进制转换是有一定规则的,掌握了规则,手动能算出来,这类题目不是问题。

R进制转十进制的规则:
比如八进制转十进制:每一位乘以对应权重即可
12.75[8] = 1*8^1+2*8^0+7*8^(-1)+5*8^(-2) [10] = 10.953125 [10]

十进制转R进制规则:
比如上面例子反过来:10.953125 [10] = 12.75[8]
整数部分 10 (整数部分除R取余)

       整   R     余   
       10 /8      2   ^
       ------         |
       上1/8      1   |  整部读取方向12
       ------
       上0  end

小数部分0.953125 (小数部分乘R取整)

           小           R        整 
   0.953125 * 8        7         | 
   --------------                |
      0.625    * 8     5         V  小数部分读取方向0.75
   --------------
      0 end       
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值