我必须编写一个将二进制更改为十进制的方法。 编写一种方法,将提供的二进制数字(作为字符串)转换为十进制数字。
我已经创建了将十进制转换为二进制的方法,但是我不确定如何将二进制转换为十进制。
public String convertToBinary(int decimal) {
int n = decimal;
int digit;
String out = "";
while (n > 0){
n = decimal/2;
digit = decimal % 2;
out = digit + out;
decimal = n;
}
out = addPadding(out);
return out;
}
private String addPadding(String s){
String out = s;
int len = s.length();
if (len == 8) return s;
else{
switch(len){
case 7:
out = "0"+s;
break;
case 6:
out = "00"+s;
break;
case 5:
out = "000"+s;
break;
}
}
return out;
}
}
答案 0 :(得分:0)
看看如何做,这里有详细的算法: https://javarevisited.blogspot.com/2015/01/how-to-convert-binary-number-to-decimal.html
建议的算法实现将int作为输入。这是String版本:
public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
int currentIndex = binary.length() - 1;
while (currentIndex>=0) {
int currentDigit = binary.charAt(currentIndex) - '0'; //char to number conversion
decimal += currentDigit * Math.pow(2, power);
power++;
currentIndex--;
}
return decimal;
}
需要进行字符到数字的转换,因为我们需要将字符“ 1”或“ 0”转换为数字1或0。我们可以使用字符的ascii代码(“ 0” = 48和' 1'= 49)
答案 1 :(得分:0)
transaction
答案 2 :(得分:0)
不确定您是否必须由老师手动执行此操作,但是如果没有,则可以使用一些内置的功能:
// Convert binary String to integer:
// TODO: Surround with try-catch
int outputInt = Integer.parseInt(inputBinaryString, 2);
// Convert integer to binary String:
String outputBinaryString = Integer.toBinaryString(inputInt);
// Pad leading zeros to make the length 8:
String paddedResult = String.format("%8s", outputBinaryString).replace(' ', '0');
答案 3 :(得分:-1)
尝试此代码
import java.util.Scanner;
class BinaryToDecimal
{
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
System.out.println("Enter a binary number:");
int n=s.nextInt();
int decimal=0,p=0;
while(n!=0)
{
decimal+=((n%10)*Math.pow(2,p));
n=n/10;
p++;
}
System.out.println(decimal);
}
}