質問

私は認めているのが怖い、私は今ではC ++を使用していませんが、私は今までに持っていると思います、そして私は少し錆びました。
ビットマップを持っている必要があります。パフォーマンスについて気にしているため、ビットマップサイズはもう25ビットになります。
unsigned intを使うことを考えていましたが、C / C ++でどのように実装されているかを覚えていないと思います。

通常の2進数として実装されているunsigned intは?
私はビットマップの他の提案にも開かれています。
ヘルプのために事前にありがとう!

役に立ちましたか?

解決

ヘッダstd::bitset<25>から<bitset>を使用します。bitset[]でインデックスを付けることができ、テンプレートであるため、すべての操作をインライン化されたすべての操作ではunsigned int(または同等の)まで拡張します。

他のヒント

std :: bitset から<bitset>ヘッダファイルから検討しましたか?

例:

#include <iostream>
#include <bitset>

int main() {
        std::bitset<25> bits(146);
        std::cout << bits << std::endl;

        //using operator[] to access individual bit manually!
        for(size_t i = 0 ; i < bits.size() ; ++i)
           std::cout << bits[i] << " ";
        return 0;
}
.

出力:

0000000000000000010010010
0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.

注: bits[0]は最下位ビットですが、bits[bits.size()-1]は最上位ビットです!

オンラインデモ: http://ideone.com/3ssf0

代わりに

ビットマップには整数タイプを使用できるはずです。

しかしながら、標準図書館には<bitset>があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top