【发布时间】:2013-01-09 14:32:01
【问题描述】:
我编写了一个函数,它应该从unsigned int 延迟的位集合中提取。
我想为此使用掩码。我不确定定义此类掩码的最佳方法是什么。
例如,我需要提取位 6:14。所以我需要将掩码定义为111111111 << 6。
我的问题是我不能使用 boost 或类似的东西,标准的 c/c++ 不知道使用二进制数。
可以做的是将 111111111 用作 2^10-1。我不确定 - 这是最好(最优雅)的解决方案。有什么建议吗?
【问题讨论】:
-
问题不够清楚。不要只告诉我们面具,还要告诉我们真正的问题。
-
您可以为此使用用户定义的字符串文字。最近有a similar question关于大号。
-
要为
2^10-1创建掩码,您可以使用(1<<10)-1。