java小数转二进制_java十进制小数转二进制

java小数转二进制_java十进制小数转二进制1.十进制整数思路:整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。例子:23/2商:11余数:111/2商:5余数:15/2商:2余数:12/2商:1余数:01/2商:0余数:1代码实现:publicStringBuilderintToBinary(intdeci)t…

1. 十进制整数

思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。

例子:

23/2  商: 11  余数: 1

11/2  商: 5   余数: 1

5/2    商: 2   余数: 1

2/2    商: 1   余数: 0

1/2    商: 0   余数: 1

代码实现:

publicStringBuilder intToBinary(intdeci) throwsException{StringBuilder binary = newStringBuilder();while(in!=0){

intquotient=in/2; //商intremender=in%2; //余数binary.append(remender);in=quotient;}

returnbinary.reverse();}

public static voidmain(String[] args){

try{

DecimalToBinary t = newDecimalToBinary();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

代码实现:

publicStringBuilder doubleToBinary(doubled) throwsException{

returndoubleToBinary(d,4);//利用方法重装实现默认参数}

publicStringBuilder doubleToBinary(doubled,intcount) throwsException{

if(count>32){

throw newException(“The max bit must less than 32!”);}

if(count==0){

throw newException(“The min bit must bigger than 0”);}

doublemulti=0;//每次的乘积StringBuilder res=newStringBuilder();while(count>=0){

multi=d*2;if(multi>=1){

res.append(1);d=multi-1;}

else{

res.append(0);d=multi;}

count–;}

returnres;}

3. 十进制整数和小数

思路: 整数和小数分别转换,然后将两个数组以小数点为分割分别打印出来。

例子:

代码实现:

publicStringBuilder allToBinary(doubledeci) throwsException {

intin=(int)deci;//取整数部分doubled= deci – in;//小数部分StringBuilder total = newStringBuilder();total.append(intToBinary(in));total.append(“.”);total.append(doubleToBinary(d));returntotal;}

4. 测试:

public static voidmain(String[] args){

try{

DecimalToBinary t = newDecimalToBinary();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小数转二进制_java十进制小数转二进制分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11910.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注