我是靠谱客的博主 安静金鱼,最近开发中收集的这篇文章主要介绍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. 测试:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部