gpt4 book ai didi

java - 在 Java 中打印二进制值

转载 作者:行者123 更新时间:2023-12-04 07:22:29 24 4
gpt4 key购买 nike

为什么当我们尝试打印 010011 时,这个 java 程序的输出是 89分别是:

public class Test{
public static void main(String str[]){
System.out.println(011);
}
}

这是什么原因?

最佳答案

在 Java 中,从整数到字符串的默认转换是以 10 为底。如果您想要不同的基数,则必须明确指定。例如,您可以使用以下方法将整数值转换为二进制字符串:

Integer.toString(value, 2);

同样,您可以将其转换为八进制值:

Integer.toString(value, 8);

除非值为 0,否则字符串不会有前导零。如果你想要一个前导 0,你必须在它前面加上。或者,您可以将其格式化为 String.format()并为转换后的字符串指定零填充和最小宽度:

String.format("%1$03o", value); // the "1$ in the format string is optional here

附言从您的问题中不清楚确切的问题是什么。听起来像是您正在从整数值转换为字符串。但是,如果问题是您正在尝试读取字符串“011”并且它被读取为整数值 9,这是因为前导 0 强制解释为八进制值。您必须将其作为字符串值读取,然后明确指定从字符串到整数的转换以 10 为底:

int val = Integer.valueOf(stringValue, 10);

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

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