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

时间:2013-08-10 23:40:38

标签: java bit-manipulation

我想提取十六进制数的第3位数。例如,从4中提取0x4598

  

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

     

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

     

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

对于第3位数字,我按照该模式尝试了(0x4598 & 0xf000) >> 16,但它返回0。有什么问题?

1 个答案:

答案 0 :(得分:5)

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

请改为尝试:

(0x4598 & 0xf000) >> 12;