我想提取十六进制数的第3位数。例如,从4
中提取0x4598
。
提取第0位数字:
(0x4598 & 0x0f) // returns 8
提取第一位数:
(0x4598 & 0xf0) >> 4 // returns 9
提取第二位数字:
(0x4598 & 0xf00) >> 8 // returns 5
对于第3位数字,我按照该模式尝试了(0x4598 & 0xf000) >> 16
,但它返回0
。有什么问题?
答案 0 :(得分:5)
这里的模式是添加四个,而不是加倍。
请改为尝试:
(0x4598 & 0xf000) >> 12;