这可能是个愚蠢的问题。
当我尝试构建一些方法时,例如 “有效地八进制到十进制”,我被提醒有文字可以完成这项工作。这将是最快的、按位的、内置的系统方式。
对于八进制,前缀为“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 所说,不是可接受的答案。)
最佳答案
因为文字是在编译时求值的。您想要评估运行时。
在 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、....
关于java - 为什么我们需要 (HEX | OCT)_to_DEC 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786474/