【Java】打印一个0到1之间的实数的二进制表示

来源:互联网 发布:linux应用程序开发详解 编辑:程序博客网 时间:2024/05/16 10:59

给定一个介于0和1之间的实数,(如0.72), 类型为double,打印它的二进制表示。

如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”

public class printBinary {public static String printBin( double num ) {if (num >= 1 || num < 0) {return "ERROR";}StringBuilder binary = new StringBuilder();binary.append(".");while( num > 0) {if (binary.length() > 32) {return "ERROR";}double r = num * 2;if ( r > 1 ) {binary.append(1);num = r - 1;}else {binary.append(0);num = r;}}return binary.toString();}}


0 0
原创粉丝点击