gpt4 book ai didi

java - Java 中的二进制到二进制转换器

转载 作者:行者123 更新时间:2023-11-30 06:20:43 28 4
gpt4 key购买 nike

试图在 Java 中将二进制转换为 denary,但我不确定出了什么问题,我感觉它在我的循环中,任何帮助将不胜感激!如果你想看的话,我正在关注伪代码!

System.out.println("Enter a binary number");

Scanner sc = new Scanner(System.in);
String binaryString = sc.next();

int binaryLength = binaryString.length();

int multiplier = 1;
int denaryValue = 0;

for(int n = binaryLength; n >= 1; n--){
int digit = n;
denaryValue = denaryValue + digit * multiplier;
multiplier = multiplier * 2;
}
System.out.println("The denary equivalent is " + denaryValue);

最佳答案

绝对最简单的方法是使用 Integer.parseInt(String, 2); (在您的情况下:Integer.parseInt(binaryString, 2);)。

但是,如果你真的想运行循环:

for(int n = binaryLength; n >= 1; n--){
int digit = binaryString.charAt(n - 1) - '0';
denaryValue = denaryValue + digit * multiplier;
multiplier = multiplier * 2;
}

就个人而言,如果我真的想重新发明轮子,我会这样做:

if (!binaryString.matches("[01]+")) {
//here we know that there is a character that is not a 0 or a 1
//or that the string is empty
}
for(char c : binaryString.toCharArray()) {
denaryValue += c - '0';
denaryValue <<= 1; //binary left shift; multiply by 2
}
denaryValue >>= 1; //binary right shift; divide by 2

关于java - Java 中的二进制到二进制转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416637/

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