我有一个十六进制定义的整数,如:
int number = 0x000500000;
是否可以获得数字的值?例如,我想知道第5位的值(从右到左阅读,但任何一个方向对我来说都很有用)。类似的东西:
public int valueOfDigit(int value, int position) {
return value at position'th digit of value;
}
我该怎么做? (不确定数字是否是正确的术语,如果错误请纠正我),
由于
答案 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))