我是靠谱客的博主 安静金鱼,最近开发中收集的这篇文章主要介绍java实现十进制整数或小数转换成二进制1. 十进制整数2. 十进制小数3. 十进制整数和小数4. 测试:,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1. 十进制整数
思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。
例子:
23/2 商: 11 余数: 1
11/2 商: 5 余数: 1
5/2 商: 2 余数: 1
2/2 商: 1 余数: 0
1/2 商: 0 余数: 1
代码实现:
public StringBuilder intToBinary(int in) throws Exception{ StringBuilder binary = new StringBuilder(); while(in!=0){ int quotient=in/2; //商 int remender=in%2; //余数 binary.append(remender); in=quotient; } return binary.reverse(); } public static void main(String[] args){ try { DecimalToBinary t = new DecimalToBinary(); System.out.println(t.intToBinary(23)); }catch (Exception e){ e.printStackTrace(); } }Output: 10111
2. 十进制小数
思路: 小数乘以2,每次乘完取整(1或者0)放到数组中,然后将剩余小数部分继续乘以2,直到小数部分为0或者达到所要求的精度为止,再讲所有余数按顺序打印出来。
例子:
0.813*2 整数部分: 1 小数部分: 0.626
0.626*2 整数部分: 1 小数部分: 0.252
0.252*2 整数部分: 0 小数部分: 0.504
0.504*2 整数部分: 1 小数部分: 0.008
0.008*2 整数部分: 0 小数部分: 0.016
代码实现:
public StringBuilder doubleToBinary(double d) throws Exception{ return doubleToBinary(d,4);//利用方法重装实现默认参数 } public StringBuilder doubleToBinary(double d,int count) throws Exception{ if (count>32){ throw new Exception("The max bit must less than 32!"); } if(count==0){ throw new Exception("The min bit must bigger than 0"); } double multi=0; //每次的乘积 StringBuilder res=new StringBuilder(); while(count>=0){ multi=d*2; if(multi>=1){ res.append(1); d=multi-1; } else{ res.append(0); d=multi; } count--; } return res; }
3. 十进制整数和小数
思路: 整数和小数分别转换,然后将两个数组以小数点为分割分别打印出来。
例子:
代码实现:
public StringBuilder allToBinary(double deci) throws Exception { int in=(int)deci; //取整数部分 double d= deci - in; //小数部分 StringBuilder total = new StringBuilder(); total.append(intToBinary(in)); total.append("."); total.append(doubleToBinary(d)); return total; }
4. 测试:
public static void main(String[] args){ try { DecimalToBinary t = new DecimalToBinary(); System.out.println(t.intToBinary(23)); System.out.println("0."+t.doubleToBinary(0.23)); System.out.println(t.allToBinary(23.23)); }catch (Exception e){ e.printStackTrace(); }输出:
10111
0.00111
10111.00111
最后
以上就是安静金鱼为你收集整理的java实现十进制整数或小数转换成二进制1. 十进制整数2. 十进制小数3. 十进制整数和小数4. 测试:的全部内容,希望文章能够帮你解决java实现十进制整数或小数转换成二进制1. 十进制整数2. 十进制小数3. 十进制整数和小数4. 测试:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复