如果我想编写一个几乎只处理例如8基数学的程序,是否可以更改源代码或JVM以使用此基数执行所有计算,而不必在每个整数引用上都进行显式更改?

例如,代替...

private static final int RADIX = 8;

// ... then, elsewhere ...

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


...我可以做...

System.out.println(3 + 7);


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

这似乎是不可思议的,或者是“为什么要在世界上这样做”的场景,但是如果您可以想象必须在不同的基础上执行大量非平凡的计算,那么您会发现它将会变得多么极端必须手动将数字转换为适当的基数,这非常麻烦。

最佳答案

不,没有这样的功能。

无论您说的是什么基础,数字都是数字,仅当转换为字符串或从字符串转换为基数时,基数才出现。如果您必须一直这样做,那么请创建一些可以完成工作的实用程序方法,并始终对其进行调用。或者,编写自己的类似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

}

关于java - 有没有办法改变Java代码的内部基数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13036332/

10-13 04:32