基本转换 - 十进制到八进制

时间:2013-10-12 17:33:54

标签: java base

在下面的代码中,我尝试将15 base 10转换为它在base 8中的值17,但是下面的程序给了我13而不是17.方法{{1}接收15作为baseEight然后我理解Integer.parseInt string取值15并将其转换为基数8值,该值应为17.但它不是。我不确定它是什么错。

baesEight

3 个答案:

答案 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)

基数8中的15实际上是13:)

如果您想要数字的八进制字符串表示,可以使用Integer.toOctalString(number)或使用yourInteger.toString(8)

对于您的情况,那将是:

int a = 15; 
String s = Integer.toOctalString(a);
println(s);