java - 二进制转十进制,错误信息

标签 java for-loop binary decimal

我编写了一个将二进制数转换为十进制数的程序。
当我使用一些二进制数运行程序时,程序给出十进制数,但带有错误消息。

我的代码:

public class ohad {

    public static void main(String[] args) {

        String bin = "10011";
        int length = bin.length();
        int j = 0;
        int sum = 0;

        if (length != 0) {
                    for (int i=0; i < bin.length(); i++){
                        if (bin.charAt(i) == '0' || bin.charAt(i) == '1'){

                            for (int t = (length - 1); t >= 0; t--){
                                String s = bin.charAt(j) + "";
                                sum = (int)(sum + (Integer.valueOf(s)) * (Math.pow(2, t)));
                                j++;
                            }
                            System.out.println(sum);
                        }                           
                        else {
                            System.out.println("illegal input.");  
                        }

                    }
        } else {
            System.out.println("illegal input.");

        }   

    }

}

错误信息:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(String.java:646)
at ohad.main(ohad.java:15)

我认为这与我的 j 索引有关。我该怎么办?

最佳答案

我应该做什么?

我会使用Integer.parseInt(String,int)喜欢

String bin = "10011";
System.out.println(Integer.parseInt(bin, 2));

输出为

19

关于java - 二进制转十进制,错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26874254/

相关文章:

javascript - 使用 .each() 处理 jQuery 函数时遇到问题

c - 在 C 中将时间戳存储为二进制分数

java - 二进制到十进制转换

java - 如何将 DeferredResult 与 ListenableFuture 列表结合使用?

java - 如何将控制台 .jar 的输出路由到另一个 .jar 应用程序(GUI)?

java.lang.OutOfMemory错误: GC overhead limit exceeded after the service gets executed for a week

python - 如何阻止值返回 'None' ?

java - 如何关闭断开的jdbc连接?

python - 在 Python 中创建大型数组

c - 从十进制字符串到二进制镜像十进制的最短方法?