如何用长整数将二进制转换为十进制?

时间:2015-07-20 09:28:54

标签: java binary type-conversion

我想将分数二进制数转换为十进制数。 11010010011101010011

为此我收到错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "11010010011101010011"

3 个答案:

答案 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。我的英语不好,但我会试着解释一下。

  1. 首先,你必须反转String。
  2. 然后,从头到尾,获取元素并乘以2^place
  3. 以下是代码:

    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);
    }