1

たとえば、基数8の数学をほぼ排他的に処理するプログラムを作成する場合、すべての整数参照で明示的に変更することなく、この基数ですべての計算を実行するようにソースコードまたはJVMを変更する方法はありますか?

たとえば、代わりに...

private static final int RADIX = 8;

// ... then, elsewhere ...

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

...私はただすることができました...

System.out.println(3 + 7);

...そしてそれは?と同じ結果を出力し12ますか?適用できる環境変数またはコード内設定はありますか?それとも、これは単に不可能ですか?

これは難解または「世界でこれを実行したい理由」のシナリオに見えるかもしれませんが、別のベースで多数の重要な計算を実行する必要があることを想像できる場合は、それがどのように極端になるかを見ることができます数値を適切な基数に手動で変換し続ける必要があるのは非常に高速です。

4

3 に答える 3

1

いいえ。

また、なぜあなたはそれが欲しいのですか?同じJVMで実行されるコードをいくつ壊すか想像してみてください。コーディングライブラリの誰も、デフォルトの基数が突然変更されることを期待していません。

定数を使用するのが正しい方法です。

于 2012-10-23T18:02:34.833 に答える
1

いいえ、そのような機能はありません。

数値は、どのベースについて話しているかに関係なく、基数は文字列との間で変換するときにのみ入力されます。これを常に行う必要がある場合は、作業を行うユーティリティメソッドをいくつか作成し、常にそれらを呼び出します。または、fromString/toStringビットを処理する独自の整数のようなクラスを記述します。

public final class OctalInteger extends Number implements Comparable<OctalInteger> {
    // Basically a copy of Integer.java, but changes the methods dealing with Strings

}
于 2012-10-23T18:07:46.647 に答える
0

デフォルトの基数を変更することはできません。ただし、整数を8進数で出力する独自のプロシージャをprint簡単に作成できます。println

于 2012-10-23T18:04:28.363 に答える