为什么我们需要(HEX | OCT)_to_DEC方法呢?

时间:2013-07-22 11:30:50

标签: java hex literals octal radix

这可能是一个愚蠢的问题。

当我尝试构建一些方法,如“八进制到十进制有效”时,我被提醒有文字可以完成这项工作。这将是系统内置的最快,按位,内置。

对于八进制,前缀为'0'。

对于十六进制,前缀为“0x”。

参考:https://en.wikibooks.org/wiki/Java_Programming/Literals

for (int i=10; i<18; i++)
    System.out.println("Octal: " + ( 0 prefix i ));

当然我知道prefix这个词不起作用。当然我知道符号是文字。但是,如果我们实际上可以prefix它,并让系统进行本机转换。是不是必须是最有效率

而且,为什么不能? (文字是文字,正如JLS所说,是不可接受的答案。)

2 个答案:

答案 0 :(得分:4)

因为文字是在编译时评估的。您想评估运行时。

在Java中,您始终可以使用toString方法以10以外的任何其他基数显示您的值。在您的情况下:

for (int i=10; i<18; i++)
    System.out.println("Octal: " + Integer.toString(i, 8));

输出:12,13,....

或者,如果你想迭代八进制数,只需将它们放在那里:

for (int i=010; i<018; i++)
    System.out.println("Octal: " + Integer.toString(i, 8));

输出:10,11,....

答案 1 :(得分:0)

文字只能帮助您在源代码中编写十进制,十六进制,八进制等。它们仍然在编译时转换为原语。

对于转换,您需要一些字符串实用程序,如String.format()