获取十六进制数字的数字

Geo*_*iuc 3 java hex

int n= 0x234;
Run Code Online (Sandbox Code Playgroud)

这实际上将存储564在n中,但如果我想访问并运行2,3和4怎么办?

das*_*ght 6

十六进制数字非常容易获得:访问数字的值k,从右边开始计数,右移数值4*k,然后屏蔽& 0x0F.

int n= 0x234;
int digit2 = (n >> 2*4) & 0x0F; // Gives you 2
int digit1 = (n >> 1*4) & 0x0F; // Gives you 3
int digit0 = (n >> 0*4) & 0x0F; // Gives you 4
Run Code Online (Sandbox Code Playgroud)