3

次のように、16 進数で定義された整数があります。

int number = 0x000500000;

数字の値を取得することは可能ですか? たとえば、5 桁目の値を知りたいです (右から左に読んでいますが、どちらの方向でもうまくいきます)。何かのようなもの:

public int valueOfDigit(int value, int position) {
    return value at position'th digit of value;
}

どうやってやるの?(ここで数字が正しい用語かどうかはわかりません。間違っている場合は修正してください)、

ありがとう

4

3 に答える 3

8

16 進数は 4 ビットなので、基本的にはシフトとマスキングのケースにすぎません。

public static int valueOfDigit(int value, int position) {
    return (value >> (position * 4)) & 0xf;
}
于 2012-08-31T17:43:33.657 に答える
2

Integer クラスを使用できます。

Integer.toHexString(number).charAt(position)

position は読みたい数字です

于 2012-08-31T17:46:18.307 に答える
1
int digitMask = 0XF * 16 ^ (position - 1);
return (value & digitMask) / (16 ^ (position -1))
于 2012-08-31T17:44:36.407 に答える