HAPPY -1 填空2 Java --- 十进制(带小数)转换为二进制
2018-02-24 20:00
302 查看
public class decimalToBinary{ public static String decimal2Binary(double value) throws Exception { // 通过强制类型转换得到整数部分的值 int in = (int) value; System.out.println("The integer is: " + in); // 得到小数部分的值 double r = value - in; System.out.println("The decimal number is: " + r); StringBuilder stringBuilder = new StringBuilder(); // 将整数部分转化为二进制 int remainder = 0;//余数初始化为0 int quotient = 0;//商初始化为0 while (in != 0) {//如果整数部分不为0 // 得商 quotient = in / 2; // 得余数 remainder = in % 2; stringBuilder.append(remainder); in = quotient;//将整数部分变为商 } stringBuilder.reverse();//将字符串反转 stringBuilder.append(".");//加上小数点 // 将小数部分转化为二进制 int count = 32; // 限制小数部分位数最多为32位,如果超过32为则抛出异常 double num = 0; while (r > 0.0000000001) { count--; if (count == 0) { throw new Exception("Cannot change the decimal number to binary!"); } num = r * 2; if (num >= 1) { stringBuilder.append(1); r = num - 1; } else { stringBuilder.append(0); r = num; } } return stringBuilder.toString(); } public static void main(String[] args) { try { String s = decimal2Binary(19.71875); System.out.println("The result is: " + s); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- HAPPY -1 填空1 Java --- 二进制(无小数部分)转换为十进制
- java实现十进制整数或小数转换成二进制
- java实现十进制小数转换二进制
- java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)
- java 二进制,八进制,十六进制,十进制间进行相互转换
- 十进制小数转换为二进制
- Java中的负数的在计算机中的二进制表示,以及与十进制的相互转换
- 十进制纯小数转换为二进制编码
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- MODBUS协议 IEEE32位二进制浮点数与十进制小数转换的方法等内容
- java中 二进制 八进制 十六进制 十进制 相互转换 最简方法
- 十进制小数和二进制小数之间的转换
- java 二进制 十进制 十六进制数据类型转换
- java十进制到(二进制,八进制,十六进制)的转换的优化
- java二进制、八进制、十进制、十六进制相互转换及位运算
- 在JAVA中二进制,八进制,十六进制,十进制间进行相互转换
- Java 二进制,八进制,十进制,十六进制之间的相互转换
- 【计算机体系结构】十进制小数转换成二进制小数
- java,二进制转换为十进制,valueof和parseInt的区别
- 在JAVA中二进制,八进制,十六进制,十进制间进行相互转换