Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 定义遮罩的最佳方法_C++_Binary_Mask - Fatal编程技术网

C++ 定义遮罩的最佳方法

C++ 定义遮罩的最佳方法,c++,binary,mask,C++,Binary,Mask,我写了一个函数,它应该从无符号int延迟的位集合中提取。 我想用一个面具来做这件事。我不知道怎样才能最好地定义这样的面具。 例如,我需要提取位6:14。因此我需要将掩码定义为111111111大多数人在表示掩码时使用十六进制,如0xFF、0x0A等。大多数人在表示掩码时使用十六进制,如0xFF、0x0A等。您有权访问标准库吗?如果是这样,我会尝试std::bitset 这是它的文档 您有权访问标准库吗?如果是这样,我会尝试std::bitset 这是它的文档 让我们先做一堆 二进制中N个1序列的

我写了一个函数,它应该从
无符号int
延迟的位集合中提取。 我想用一个面具来做这件事。我不知道怎样才能最好地定义这样的面具。
例如,我需要提取位6:14。因此我需要将掩码定义为
111111111大多数人在表示掩码时使用十六进制,如0xFF、0x0A等。

大多数人在表示掩码时使用十六进制,如0xFF、0x0A等。

您有权访问标准库吗?如果是这样,我会尝试
std::bitset


这是它的文档

您有权访问标准库吗?如果是这样,我会尝试
std::bitset


这是它的文档

让我们先做一堆

二进制中N个1序列的一个特性是,就像十进制中的9个序列一样,如果你加上1,你会得到一个1,后面跟着N个0。我们可以用倒数,如果你从一中减去一,再加上N个零,得到一个N个一的序列

一个后跟N个零的1只向右移动N个位置

template <typename Uint>
Uint zigamorph(int n) { // http://catb.org/jargon/html/Z/zigamorph.html
    return 1 << n - 1; // same as 2^n - 1 :)
}
模板
Uint zigamorph(int n){//http://catb.org/jargon/html/Z/zigamorph.html

return 1让我们先做一堆

二进制中N个1序列的一个特性是,就像十进制中的9个序列一样,如果你加上1,你会得到一个1,后面跟着N个0。我们可以用倒数,如果你从一减去一,后面跟着N个0,你会得到一个N个1的序列

一个后跟N个零的1只向右移动N个位置

template <typename Uint>
Uint zigamorph(int n) { // http://catb.org/jargon/html/Z/zigamorph.html
    return 1 << n - 1; // same as 2^n - 1 :)
}
模板
Uint zigamorph(int n){//http://catb.org/jargon/html/Z/zigamorph.html

返回1仅使用
0x1FF仅使用
0x1FF如果问题不够清楚。不要只告诉我们掩码,还要告诉我们真正的问题。你可以使用用户定义的字符串文字。最近有大量的数字。要为
2^10-1
创建掩码,你可以使用
(1问题还不够清楚。不要只告诉我们掩码,还要告诉我们真正的问题。你可以使用用户定义的字符串文字。最近有大量的数字。要为
2^10-1
创建掩码,你可以使用
(1)如果问题被标记,除非另有明确说明,否则您可以安全地假设您可以使用标准库。如果问题被标记,则您可以安全地假设您可以使用标准库,除非另有明确说明。