1

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

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

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

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

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

4

1 回答 1

5

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

试试这个:

(0x4598 & 0xf000) >> 12;
于 2013-08-10T23:42:40.537 回答