导航:首页 > 源码编译 > java二进制转十进制算法

java二进制转十进制算法

发布时间:2022-04-23 01:07:06

java二进制转十进制

(4)2^7-1-2^(5-1)
(6)2^32-1-2^3-2^1-1
(7)2^32-1-2^7-2^1
思路:
当从右往左数为第n位时,该位置的表示2^(n-1);
比如1011左数第一位的1表示8=2^(4-1)
当从右往左数的前n位全为1时,该数表示2^n-1;
比如1111=15=2^4-1
所以当首位是1,且1明显比0多时,采用减法会简单很多
第七题就是全为1时减去右数第八位和第二位的1后所得的结果
希望我的回答对你有用。

㈡ java怎么把二进制转换为十进制

Java有两种方法可以将二进制数转换为十进制数:
1)使用Integer类的Integer.parseInt()方法。
2)自己编写转换逻辑。

㈢ 在JAVA中怎么把二进制转换成十进制

String BIN2DEC(String bin){
BigInteger bi = new BigInteger(getString(bin), 2);//转换为BigInteger类型
return bi.toString(10);//转换为10进制结果
}

㈣ 求java编程 二进制十进制互相转化

java中有现在的api

10进制转二进制

Integer.toBinaryString(int i);

㈤ 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; i>0; 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();
}
}

㈥ java如何以按钮使输入的二进制转化为十进制

使用Integer.parseInt(Strings,intradix)。比如要将二进制数1000转换为十进制数.inti=Integer.parseInt("1000",2);System.out.println(i);输出结果为:8。

㈦ 编写将任意二进制数转换为十进制数的java程序

java有现成的
二进制转十进制
Integer.valueOf("0101",2).toString()

另外还有
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()

㈧ 用JAVA把二进制数转换成十进制数。

二进制转十进制

Integer.valueOf("0101",2).toString()

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("输入一个二进制数: ");

String a = sc.nextLine();

int d = Integer.parseInt(a, 2); // 2进制

int o = Integer.parseInt(a, 8); // 8进制

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

System.out.println("八进制转为十进制: " + o);

计算机内部使用二进制表示数

二进制与十进制的转换是比较复杂的。比如我们要让计算机计算50+50=?,那么首先要把十进制的50转换成二进制的“50”——110010,这个过程要做多次除法,而计算机对于除法的计算是最慢的。把十进制的50转换成二进制的110010还不算完,计算出结果1100100之后还要再转换成十进制数100,这是一个做乘法的过程,对计算机来说虽然比除法简单,但计算速度也不快。

以上内容参考:网络-十进制

㈨ java中有将二进制转换成十进制的方法吗

:java进制转换 java中进行二进制,八进制,十六进制,十进制间进行相互转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进

㈩ java二进制转化为十进制 要纯算法的

二进制的1101转化成十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
转化成十进制要从右到左用二进制的每个数去乘以2的相应次方
不过次方要从0开始

阅读全文

与java二进制转十进制算法相关的资料

热点内容
免费pdf工具 浏览:380
pdf加密一机一码 浏览:600
怎么把百度云资源压缩 浏览:456
不会数学英语如何编程 浏览:88
如何能知道网站服务器地址 浏览:648
程序员月薪5万难吗 浏览:138
如何评价程序员 浏览:803
云虚机和服务器的区别 浏览:403
广西柳州压缩机厂 浏览:639
arm开发编译器 浏览:833
51单片机的核心 浏览:746
看电视直播是哪个app 浏览:958
将c源程序编译成目标文件 浏览:787
再要你命3000pdf 浏览:558
ai软件解压软件怎么解压 浏览:520
文件夹怎样设置序列号 浏览:963
javascriptgzip压缩 浏览:248
易语言怎么取出文件夹 浏览:819
苹果xs手机加密app哪里设置 浏览:605
超声雾化器与压缩雾化器 浏览:643