判断小数能否用32位二进制精确的表示
2016-08-15 13:24
218 查看
本文代码可在我的github中BinDecimal.java中找到。
题目描述:
有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。
给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。
思路分析:
一位一位的判断,判断一位去掉一位。并且另起一个字符串进行表示。
代码:
题目描述:
有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。
给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。
思路分析:
一位一位的判断,判断一位去掉一位。并且另起一个字符串进行表示。
代码:
package newcoder; public class BinDecimal { public String printBin(double num) { String res = "0."; double base = 0.5; while (num > 0)//继续判断的条件就是num依然存在 { if (num >= base)//判断某位是用1还是用0表示 { res += "1"; num -= base; } else res += "0"; base /= 2;//移动一位 if (res.length() > 34)//“0.”占2个字符位置。 { res = "Error"; break; } } return res; } }
相关文章推荐
- 为什么0.1无法被二进制小数精确表示?
- 【转】为什么0.1无法被二进制小数精确表示?
- 为什么0.1无法被二进制小数精确表示?
- 判断32位无符号整数二进制中1的个数
- 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 关于浮点数的小数部分的二进制表示、精度以及浮点数如何在内存中存放问题
- 用分数精确表示小数
- 反转一个字节和判断32位整数二进制中1的个数等算法
- 位运算与小数的二进制表示
- 怎样判断一个整数的二进制表示有几个1(或0)
- 判断整数 x 能否表示成 n(n >= 2)个连续正整数的和
- SQL 判断整数小数 , 小数去掉最后的0 ,判断小数精确位数
- 小数的二进制表示
- 5.2---小数的二进制表示(CC150)
- 《剑指offer》-实现一个函数用来判断字符串是否表示数值(包括整数和小数)
- 实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。
- 判断32位整数二进制中1的个数
- 如何用二进制表示一个小数
- 小数的二进制表示