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

标签 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 所说,不是可接受的答案。)

最佳答案

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

在 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/

相关文章:

java - 从.Net客户端调用Java Web服务来获取byte[](有Java示例)

java - Files.walk() 操作系统独立性问题

sql - 将 SQL 二进制内容转换为文件

java - 将字符串转换为字节数组 (0x) - Java

c++ - 如何在 C/C++ 中声明 16 位二进制字符?

java - 测量通过套接字发送的数据大小

java - 来自android中月份数字的月份名称

c - 8051 无法转储十六进制文件

javascript 文字初始化循环

java - 正确匹配 Java 字符串文字