提取十六进制数的第3位数

Fra*_*pps 1 java bit-manipulation

我想提取十六进制数的第三位数.例如,提取40x4598.

提取第0位数: (0x4598 & 0x0f) // returns 8

要提取第一个数字: (0x4598 & 0xf0) >> 4 // returns 9

提取第二个数字: (0x4598 & 0xf00) >> 8 // returns 5

对于第三个数字,我按照模式尝试(0x4598 & 0xf000) >> 16,但它返回0.怎么了?

qap*_*hla 5

这里的模式是添加四个,而不是加倍.

试试这个:

(0x4598 & 0xf000) >> 12;
Run Code Online (Sandbox Code Playgroud)