gpt4 book ai didi

将二进制数转换为十进制数的 Java 程序。输入是一串零和一

转载 作者:行者123 更新时间:2023-11-29 05:12:13 24 4
gpt4 key购买 nike

我必须创建一个 java 程序,使用以下步骤将二进制转换为十进制。作为新手,我做了一些事情,但我不知道我做错了什么或如何继续。

public class BinaryToDecimal {
public static void main(String args[]){
long sum = 0;
int result;
String s = "1001010101011010111001011101010101010101";
for(int i = s.length()-1; i <= 0; i--){
result = (int)Math.pow(2, i);
if(s.charAt(i) == '1')
sum=sum + result;
}
System.out.println(sum);
}
}

使用循环读取(charAt())输入字符串中的每个数字(0/1 char),从右到左扫描;

使用循环构建所需的 2 的幂;

用条件语句分别处理0和1;

使用简单的输入进行调试,例如1、10、101,并在循环中打印中间值。

用你的程序求出下列二进制数的十进制值:

1001010101011010111001011101010101010101

最佳答案

仅当您的十进制值最多为 2147483647 或 Java 中 int 的最大值时才执行此操作。如果您不知道,只需检查字符串的长度。如果它小于或等于 32,即 4 个字节,那么你可以使用 parseInt。:

int decimalValue = Integer.parseInt(s, 2);

引用HERE有关 Integer.parseInt() 的更多信息;

但如果它更多,你可以使用你的代码。我修改了你的循环,这是你的问题所在:

 String s = "1001010101011010111001011101010101010101";
long result = 0;
for(int i = 0; i < s.length(); i++){
result = (long) (result + (s.charAt(i)-'0' )* Math.pow(2, s.length()-i-1));
}
System.out.println(result);

关于将二进制数转换为十进制数的 Java 程序。输入是一串零和一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28032458/

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