打印0-1之间double数字的二进制表示
2014-08-23 15:58
190 查看
思路:依次减去 0.5,0.25,0.125。。。 够减二进制为1,不够减二进制为0。
public class Solution { public static String printBinary(double num) { if (num >= 1 || num <= 0) return "ERROR"; StringBuilder res = new StringBuilder(); res.append('.'); double frac = 0.5; while (num > 0) { if (res.length() >= 32) return "ERROR"; if (num >= frac) { res.append(1); num -= frac; } else { res.append(0); } frac /= 2; } return res.toString(); } public static void main(String[] args) { System.out.println(printBinary(0.875)); } }
相关文章推荐
- 给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- 9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- 【Java】打印一个0到1之间的实数的二进制表示
- 程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示
- 打印一个0到1之间的数的二进制表示
- 打印一个0到1之间的数的二进制表示
- stackoverflow | C/C++ | 如何不使用循环和判断语句实现“打印从1到100之间的数字”
- 读入N, S两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示三角形的行数)。(提示:左右对齐可使用cout<<left、cout<<right)
- swif数字转二进制打印方法
- java中表示二进制、八进制、十进制、十六进制,double、float、整型
- 实现输出一个数字的二进制表示
- 数字二进制表示中1的个数
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。
- 编写一个程序,要求接收一个数字,程序会将这个数字以二进制方式打印,例如:数字10 , 以1010的方式打印出来
- 程序员面试金典: 9.5位操作5.2对一个浮点数,打印它的二进制表示
- 打印2 – 100之间数字的自然对数与以10为底的对数
- Java打印整数的二进制表示(代码与解析)
- 数字二进制表示中1的个数
- 数字电路设计之格雷码与二进制之间的转换
- 用c语言编写输出四个整数,这四个整数可以表示1到40之间的任意一个数字。