如果我想编写一个几乎专门处理基数为8的数学程序,是否有办法更改源代码或JVM以使用此基数执行所有计算,而无需在每个整数引用上显式更改它?
例如,而不是......
private static final int RADIX = 8;
// ... then, elsewhere ...
System.out.println(Integer.toString(3 + 7, RADIX));
......我可以做......
System.out.println(3 + 7);
...并打印出与12
相同的结果?我可以申请一些环境变量或代码内设置吗?或者这根本不可能?
这可能看起来很神秘或者“为什么在世界上你想要这样做”的场景,但是如果你能想象必须在不同的基础上执行大量非平凡的计算,那么你可以看到它是怎样的必须保持手动将数字转换为适当的基数,这将非常繁琐。
答案 0 :(得分:1)
没有
另外,你为什么要这样?想象一下,在同一个JVM中运行的代码有多少 - 没有一个编码库会让默认基数突然改变。
你使用常数是正确的方法。
答案 1 :(得分:1)
不,没有这样的功能。
无论你在谈论什么基础,数字都是一个数字,只有在转换为字符串或从字符串转换时才会出现基数。如果你必须一直这样做,那么创建一些实用工作的实用工具方法,并始终调用它们。或者,编写自己的类似Integer的类来处理fromString / toString位。
public final class OctalInteger extends Number implements Comparable<OctalInteger> {
// Basically a copy of Integer.java, but changes the methods dealing with Strings
}
答案 2 :(得分:0)
您无法更改默认基数。但您可以轻松编写自己的print
和println
过程,这些过程将在八进制基数中打印整数。