「java十进制转二进制算法」java十进制转二进制算法是什么

博主:adminadmin 2023-01-27 10:54:08 330

本篇文章给大家谈谈java十进制转二进制算法,以及java十进制转二进制算法是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java十进制转二进制的代码是什么?

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {

Test t = new Test();

double d = 8;

String s = t.decimal2BinaryStr(d);

System.out.println("十进制数"+d+"转成二进制数为:"+s);

}

/**

* 十进制数转二进制数

* @param d 十进制数

* @return 十进制数转换成二进制的字符串

*/

public String decimal2BinaryStr(double d){

String result = decimal2BinaryStr_Inte(d);

result += decimal2BinaryStr_Deci(d);

return result;

}

/**

* 十进制整数部分转二进制数

* @param d 十进制数

* @return 十进制整数部分转换成二进制的字符串

*/

public String decimal2BinaryStr_Inte(double d){

//      return Integer.toBinaryString((int)d);

/*

一、java的简介

java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。

Java由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。

Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。

JAVA 十进制-----二进制~

String t="",建立一个字符串,用以保存最终结果

t=Integer.toString(n%2)+t; (这个步骤什么意思)n=n/2

十进制转二进制的基本算法,即,除二取余,直到余数为零位置

这句话的意思就是,将n模2的值补充道最后结果中

用java写一个 十进制转为二进制的程序

将十进制转换成二进制的算法如下:

1.给定一个数;

2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。

3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。

import java.util.Scanner;

public class Hi {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.println("请输入一个十进制需要转换为二进制的正整数");

int n=sc.nextInt();

int r;

int i=0;

int[] a=new int[20];

do{

if(n%2==1)

r=1;

else

r=0;

a[i]=r;

n/=2;

i++;

}while(n0);

System.out.println("十进制转换为二进制後:");

for(int j=i-1;j=0;j--){

System.out.print(a[j]);

}

}

}

java十进制转二进制代码怎么解决?

下面是根据十进制数转二进制数的算法所写的一段Java程序示例代码:

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {

Test t = new Test();

double d = 8;

String s = t.decimal2BinaryStr(d);

System.out.println("十进制数"+d+"转成二进制数为:"+s);

}

/**

* 十进制数转二进制数

* @param d 十进制数

* @return 十进制数转换成二进制的字符串

*/

public String decimal2BinaryStr(double d){

String result = decimal2BinaryStr_Inte(d);

result += decimal2BinaryStr_Deci(d);

return result;

}

/**

* 十进制整数部分转二进制数

* @param d 十进制数

* @return 十进制整数部分转换成二进制的字符串

*/

public String decimal2BinaryStr_Inte(double d){

//      return Integer.toBinaryString((int)d);

/*

* 本来利用上面的Integer.toBinaryString(int)就可以得到整数部分的二进制结果,

* 但为了展示十进制转二进制的算法,现选择以下程序来进行转换

*/

String result = "";

long inte = (long)d;

int index = 0;

while(true){

result += inte%2;

inte = inte/2;

index++;

if(index%4 == 0){

result+=" ";

}

if(inte==0){

while(index%4!=0){

result+="0";

index++;

}

break;

}

}

char[] c = result.toCharArray();

char[] cc = new char[c.length];

for(int i=c.length; i0; i--){

cc[cc.length-i] = c[i-1];

}

return new String(cc);

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d){

return decimal2BinaryStr_Deci(d, 0);

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @param scale 小数部分精确的位数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d, int scale){

double deci = sub(d,(long)d);

if(deci==0){

return "";

}

//为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度

if(scale==0){

scale = (String.valueOf(deci).length()-2)*4;

}

int index = 0;

StringBuilder inteStr = new StringBuilder();

double tempD = 0.d;

while(true){

if(deci==0 || index==scale){

while(index%4!=0){

inteStr.append("0");

index++;

}

break;

}

if(index==0){

inteStr.append(".");

}

tempD = deci*2;

inteStr.append((int)tempD);

deci = sub(tempD ,(int)tempD);

index++;

if(index%4 == 0){

inteStr.append(" ");

}

}

return inteStr.toString();

}

/**

* 提供精确的减法运算。

* @param v1 被减数

* @param v2 减数

* @return 两个参数的差

*/

public static double sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

}

例如将十进制数1234.5转成二进制数为:0100 1101 0010.1000

java 十进制转二进制!

十进制数转二进制数的算法如下:

1. 十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余

数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2.十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又

得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为

二进制小数的高位有效位,后取的整数作为低位有效位。

下面就给出根据十进制数转二进制数的算法所写的一段Java程序以供大家参考:

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {

Test t = new Test();

double d = 8;

String s = t.decimal2BinaryStr(d);

System.out.println("十进制数"+d+"转成二进制数为:"+s);

}

/**

* 十进制数转二进制数

* @param d 十进制数

* @return 十进制数转换成二进制的字符串

*/

public String decimal2BinaryStr(double d){

String result = decimal2BinaryStr_Inte(d);

result += decimal2BinaryStr_Deci(d);

return result;

}

/**

* 十进制整数部分转二进制数

* @param d 十进制数

* @return 十进制整数部分转换成二进制的字符串

*/

public String decimal2BinaryStr_Inte(double d){

// return Integer.toBinaryString((int)d);

/*

* 本来利用上面的Integer.toBinaryString(int)就可以得到整数部分的二进制结果,

* 但为了展示十进制转二进制的算法,现选择以下程序来进行转换

*/

String result = "";

long inte = (long)d;

int index = 0;

while(true){

result += inte%2;

inte = inte/2;

index++;

if(index%4 == 0){

result+=" ";

}

if(inte==0){

while(index%4!=0){

result+="0";

index++;

}

break;

}

}

char[] c = result.toCharArray();

char[] cc = new char[c.length];

for(int i=c.length; i0; i--){

cc[cc.length-i] = c[i-1];

}

return new String(cc);

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d){

return decimal2BinaryStr_Deci(d, 0);

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @param scale 小数部分精确的位数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d, int scale){

double deci = sub(d,(long)d);

if(deci==0){

return "";

}

//为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度

if(scale==0){

scale = (String.valueOf(deci).length()-2)*4;

}

int index = 0;

StringBuilder inteStr = new StringBuilder();

double tempD = 0.d;

while(true){

if(deci==0 || index==scale){

while(index%4!=0){

inteStr.append("0");

index++;

}

break;

}

if(index==0){

inteStr.append(".");

}

tempD = deci*2;

inteStr.append((int)tempD);

deci = sub(tempD ,(int)tempD);

index++;

if(index%4 == 0){

inteStr.append(" ");

}

}

return inteStr.toString();

}

/**

* 提供精确的减法运算。

* @param v1 被减数

* @param v2 减数

* @return 两个参数的差

*/

public static double sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

}

例如将十进制数1234.5转成二进制数为:0100 1101 0010.1000

JAVA编程,请问怎么将十进制数转换成二进制输出,又怎么将二进制数转换成十进制输出?

1、创建java类,TestNumConv.java;

2、编写java函数,十进制转二进制;

public static void decimalToBinary(int n) {

String str = "";

while (n != 0) {

str = n % 2 + str;

n = n / 2;

}

System.out.println(str);

}

3、编写java函数,二进制转十进制;

public static void binaryToDecimal(String n) {

System.out.println(Integer.parseInt(n, 2));

}

4、在main方法中,分别调用该两个函数,执行结果满足要求;

TestNumConv.decimalToBinary(123);

TestNumConv.binaryToDecimal("11011");

java十进制转二进制算法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java十进制转二进制算法是什么、java十进制转二进制算法的信息别忘了在本站进行查找喔。