查找整数中的特定半字节

时间:2015-08-31 02:25:08

标签: java bit-manipulation bitwise-operators

如何使用按位运算在整数中找到半字节?

我需要提取一个给定的半字节,特别是。

该方法看起来像这样

emails[0] = string.Empty;

以及此方法将返回的示例

private int nibbleExtract(int x, int whichNibbleToGet)

1 个答案:

答案 0 :(得分:2)

你可以通过将数字转换为半字节索引的4倍,并使用0xF进行屏蔽来实现:

int nibbleIndex = 7;
int data = 0xFF254545;
int nibble = (data >> 4*nibbleIndex) & 0xF;
  

如果没有乘法,你会怎么做?

像这样:

int nibble = (data >> (nibbleIndex << 2)) & 0xF;

现代优化器会为您将4*x转换为x << 2,因此这两种选择通常会为您提供相同的性能(而第一种当然更具可读性)。