gpt4 book ai didi

java - 使用java的十进制到二进制转换错误

转载 作者:行者123 更新时间:2023-12-02 11:03:58 24 4
gpt4 key购买 nike

我有点困惑我的程序是正确的还是我遗漏了一些东西!

我可以从中得到输出。

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.");

}
}
}

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com