有没有办法改变Java代码的内部基数?

时间:2012-10-23 17:52:45

标签: java integer environment radix

如果我想编写一个几乎专门处理基数为8的数学程序,是否有办法更改源代码或JVM以使用此基数执行所有计算,而无需在每个整数引用上显式更改它?

例如,而不是......

private static final int RADIX = 8;

// ... then, elsewhere ...

System.out.println(Integer.toString(3 + 7, RADIX));

......我可以做......

System.out.println(3 + 7);

...并打印出与12相同的结果?我可以申请一些环境变量或代码内设置吗?或者这根本不可能?

这可能看起来很神秘或者“为什么在世界上你想要这样做”的场景,但是如果你能想象必须在不同的基础上执行大量非平凡的计算,那么你可以看到它是怎样的必须保持手动将数字转换为适当的基数,这将非常繁琐。

3 个答案:

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

您无法更改默认基数。但您可以轻松编写自己的printprintln过程,这些过程将在八进制基数中打印整数。