查找整数中的数字值(以十六进制定义)

时间:2012-08-31 17:41:57

标签: java

我有一个十六进制定义的整数,如:

int number = 0x000500000;

是否可以获得数字的值?例如,我想知道第5位的值(从右到左阅读,但任何一个方向对我来说都很有用)。类似的东西:

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

我该怎么做? (不确定数字是否是正确的术语,如果错误请纠正我),

由于

3 个答案:

答案 0 :(得分:8)

嗯,十六进制数字是4位,所以基本上它只是一个移位和屏蔽的情况:

public static int valueOfDigit(int value, int position) {
    return (value >> (position * 4)) & 0xf;
}

答案 1 :(得分:2)

您可以使用Integer类:

Integer.toHexString(number).charAt(position)

其中position是您要阅读的数字

答案 2 :(得分:1)

int digitMask = 0XF * 16 ^ (position - 1);
return (value & digitMask) / (16 ^ (position -1))