繁体   English   中英

使用Java错误将十进制转换为二进制

[英]Decimal to Binary conversion using java Errors

我感到困惑是我的程序正确还是我错过了一些东西!

我可以从中得到输出。

public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter you String: ");
    String bin = sc.nextLine();

    int length = bin.length();
    int j = 0;
    int sum = 0;

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

    }
}

删除此行上的引号:

if (bin.charAt(i) == "0" || bin.charAt(i) == "1") {

应该成为

if (bin.charAt(i) == 0 || bin.charAt(i) == 1) {

下面的代码工作正常:

import java.util.Scanner;

public class test {
public static void main (String args []) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter you String: ");
    String  bin = sc.nextLine();

    int length = bin.length();
    int j = 0;
    int sum = 0;

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

    }
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM