--- title: 小数の2進数表現 tags: [] categories: ["Programming", "Algorithm", "BitManipulation"] date: 2011-08-16T17:28:42Z updated: 2011-08-16T17:28:42Z --- public static String toBinaryString(double d) { int intPart = (int) d; double decPart = d - intPart; String intStr = ""; while (intPart > 0) { int b = intPart % 2; intPart >>= 1; intStr = b + intStr; } StringBuilder s = new StringBuilder(); while (decPart > 0) { if (s.length() > 32) { return "ERROR"; } if (decPart == 1) { s.append(1); break; } double b = decPart * 2; if (b >= 1) { s.append(1); decPart = b - 1; } else { s.append(0); decPart = b; } } return intStr + "." + s.toString(); } 11.75 -> 1011.11