在下面的代码中,我尝试将15 base 10转换为它在base 8中的值17,但是下面的程序给了我13而不是17.方法{{1}接收15作为baseEight
然后我理解Integer.parseInt string
取值15并将其转换为基数8值,该值应为17.但它不是。我不确定它是什么错。
baesEight
答案 0 :(得分:3)
要获取数字的八进制表示,您需要将基数传递给Integer.toString(int, int)
方法,或使用Integer.toOctalString(int)
方法:
int a = 15;
String s = Integer.toOctalString(a);
System.out.println(Integer.parseInt(s));
Integer.parseInt(String, int)
使用给定的基数解析字符串。你不希望这样。您要求的输出只是基数8
中数字的表示。
答案 1 :(得分:1)
有什么问题,parseInt(s,8)解析字符串FROM base 8,而不是解析为8。
编辑:我忘了添加一个Integer.toOctalString,这可能就是你需要的功能。答案 2 :(得分:1)
如果您想要数字的八进制字符串表示,可以使用Integer.toOctalString(number)
或使用yourInteger.toString(8)
对于您的情况,那将是:
int a = 15;
String s = Integer.toOctalString(a);
println(s);