5

Javaで計算するためにこのコードを見ていました。math.sqrt一部のループで 16 進値を使用し、変数に通常の値を使用したのはなぜですか? ヘックスを使用する利点は何ですか?

4

3 に答える 3

28

16 進数は、10 進数よりもビットにはるかに密接に対応するためです。各 16 進数は 4 ビット (ニブル) に対応します。したがって、各 16 進数 (0 ~ F) に関連付けられているビットマスクを学習したら、「下位バイトのマスクが必要です」のようなことができます。

0xff

または、「下位 31 ビットのマスクが必要です」:

0x7fffffff

参考までに:

HEX    BIN
0   -> 0000
1   -> 0001
2   -> 0010
3   -> 0011
4   -> 0100
5   -> 0101
6   -> 0110
7   -> 0111
8   -> 1000
9   -> 1001
A   -> 1010
B   -> 1011
C   -> 1100
D   -> 1101
E   -> 1110
F   -> 1111
于 2009-01-16T20:40:47.797 に答える
3

数値は 16 進数の方が覚えやすいため、おそらく 16 進数の値を使用しました。たとえば、0x7fffffff は 2147483647 と同じですが、覚えやすいです。

于 2009-01-16T20:39:17.830 に答える
2

16 進数は、CPU が実際に使用するバイナリの人間が読める形式です。低レベルのコマンドを見ると、多くの場合、CPU に合わせて 16 進数で考える方が理にかなっています。

于 2009-01-16T20:45:46.633 に答える