我想将分数二进制数转换为十进制数。
11010010011101010011
为此我收到错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "11010010011101010011"
答案 0 :(得分:0)
请检查以下2方法。它可能对你有用。
我们可以在String
中分配二进制值String binary = "11010010011101010011";
int decimal = Integer.parseInt(binary,2);
System.out.println("Decimal==>" + decimal);
否则我们可以使用包装类来转换它
Integer decimalInt=Integer.valueOf("11010010011101010011",2);
System.out.println("Decimal==>" + decimalInt.toString());
答案 1 :(得分:0)
long n = Long.parseLong("11010010011101010011", 2);
应该有效。因为这些是32位,实际上负数int
的表示不使用parseInt。
还要确保没有垃圾。 UTF-8文本文件可能以BOM char,零宽度空间开始,不可见。删除BOM可以完成:
s = s.replace("\uFEFF", "");
答案 2 :(得分:0)
P.S。我的英语不好,但我会试着解释一下。
2^place
。以下是代码:
public static void convertToDecimal(String binaryNumber)
{
String reverse = new StringBuffer(binaryNumber).reverse().toString();
long decimal=0;
for(int i=0;i<reverse.length();i++){
char c = reverse.charAt(i);
int k=c-'0';
decimal=decimal+k*(long)Math.pow(2, i);
}
System.out.println(decimal);
}