4
enum ofp10_port_state {

    OFPPS10_STP_LISTEN  = 0 << 8, /* Not learning or relaying frames. */
    OFPPS10_STP_LEARN   = 1 << 8, /* Learning but not relaying frames. */
    OFPPS10_STP_FORWARD = 2 << 8, /* Learning and relaying frames. */
    OFPPS10_STP_BLOCK   = 3 << 8, /* Not part of spanning tree. */
    OFPPS10_STP_MASK    = 3 << 8  /* Bit mask for OFPPS10_STP_* values. */

};
4

2 に答える 2

9

その左ビットシフト演算子。つまり、指定されたビット数からビットを左にシフトします。

値は次のとおりです。

0x0F or 00001111
0x0F << 4 = 0xF0 or 11110000

Microsoft C ++では、数字が符号付きか符号なしかに応じて、右にシフト(>>)します(または最上位桁、左端の数字)。

(バイトのサイズを想定):

signed integer (an int for example):
0x80 or 10000000
0x80 >> 7 = 11111111
0x10 or 00010000
0x10 >> 4 = 00000001
if its unsigned (a uint):
0x80 or 10000000
0x80 >> 7 = 00000001
0x10 or 00010000
0x10 >> 4 = 00000001
于 2012-06-15T17:57:58.957 に答える