私が取り組んでいるプロジェクトでは、ビットセットの独自の実装を作成する必要があります。私は STL ライブラリを調べて、これがどのように処理されているかを確認し、他のいくつかのことをオンラインで調べました。char配列を使用するのはかなり標準的なようです。誰もが整数型の代わりに char 配列を使用する理由はありますか?
1132 次
2 に答える
4
単純に、C++ の a は 1 バイトであるため (または少なくとも、C++ 標準によってorchar
のサイズ以下であることが保証されています)、一方、 an のサイズは通常 1 バイトよりも大きくなります。(最近のほとんどのマシンでは、通常 32 ビットまたは 4 バイトです。) 1 バイトは、コンピューターが処理できるデータのアドレス指定可能な最小単位であるため、個々のビットを操作するときに s の配列を使用するのは自然なことです。たとえば、を使用した場合、 の倍数ではない任意の数のビットに対してかなりのスペースを浪費しますが、バイト配列を使用すると、可能な限り最小限のスペースを浪費します。int
short
int
char
int
sizeof(int)
于 2010-11-13T19:46:00.190 に答える
1
Char は (通常) マイクロプロセッサが操作できるビットの最小単位です。任意のビット数で動作するオブジェクトを作成している場合は、最小単位の配列を使用するのが理にかなっています。そうすれば、常に可能な限り少ないユニットを使用できます。
任意のサイズでないビットセットが必要で、プロセッサにそれを格納するのに十分な大きさのネイティブ型がある場合は、N ビット型を使用します。配列よりも効率的です。
于 2010-11-13T19:59:32.070 に答える