给定基数为10的浮点数,例如.583 * 10 ^ 3,可以通过分别转换分数(.583)和指数将数字转换为等价基数2形式x * 2 ^ y (3)进入基地2?如果是这样我怎么能证明这一点?非常感谢你的帮助!
答案 0 :(得分:1)
并非所有基本10个浮点数都可以精确转换为基数2浮点数。例如,0.2
可以在基数10浮点中精确表示,但不能用基数2浮点表示,其有限位数0.001100110011001100110011001100110011001100110011001101...
向左舍入为0.200000000000000011102230246251565404236316680908203125
。
相关文章为Why can't decimal numbers be represented exactly in binary。
如果您只是对近似感兴趣,可以使用各种库来为您完成此操作。例如,atof("3.14")
中的C
会将数字字符串转换为机器的本机浮点表示形式,您可以从中提取二进制数字。