首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在整数中查找特定的咬点

在整数中查找特定的咬点
EN

Stack Overflow用户
提问于 2015-08-31 02:25:07
回答 1查看 730关注 0票数 0

如何使用按位运算在整数中找到一个小块?

我需要提取一个特定的咬口,特别是。

该方法如下所示

代码语言:javascript
运行
复制
private int nibbleExtract(int x, int whichNibbleToGet)

以及该方法将返回什么的示例。

nibbleExtract(0xFF254545, 7); // => 0xF

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-31 02:28:30

您可以通过将数字移动4倍于nibble,并使用0xF掩蔽来实现。

代码语言:javascript
运行
复制
int nibbleIndex = 7;
int data = 0xFF254545;
int nibble = (data >> 4*nibbleIndex) & 0xF;

没有乘法怎么做?

如下所示:

代码语言:javascript
运行
复制
int nibble = (data >> (nibbleIndex << 2)) & 0xF;

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32303206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档