㈠ 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开始