8

みんな。最近 OC を学んでいると、いつもこんな enum に出くわします。

enum {
    type1  = 0,
    type2  = 1 << 0,
    type3  = 1 << 1,
};

type = 1 << 0 とはどういう意味ですか? 通常は何に使われますか?よろしくお願いします。

4

5 に答える 5

4

1ビットシフトです。このような構造は、何かに複数の型を割り当てる必要がある場合に使用できます。ビットマスクといいます。例:

enum {
    type1  = 1,
    type2  = 1 << 1,
    type3  = 1 << 2,
};

type1 はバイナリ 00000001、type2 は 00000010、type3 は 00000100 などです。したがって、タイプ マスクが 3 (00000011) の場合、オブジェクトがタイプ 1 とタイプ 2 であることがわかります。

于 2013-06-07T08:03:05.900 に答える