C++ 什么是<<&引用;(双尖括号)是指C/C和#x2B+;枚举? 10_端口_状态的枚举{ OFPPS10_STP_LISTEN=0
C++ 什么是<<&引用;(双尖括号)是指C/C和#x2B+;枚举? 10_端口_状态的枚举{ OFPPS10_STP_LISTEN=0,c++,c,C++,C,是一个左位移位运算符。这意味着它将位向左移位到指定的位数: 假设该值为: 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 &
是一个左位移位运算符。这意味着它将位向左移位到指定的位数:
假设该值为:
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. */
};
这是左位移位运算符。它应该给出提示。它是位移位运算符。与枚举无关。这必须是一个重复的……和一般引用……@ NoimSIM我同意,但是我找了几分钟,找不到C或C++的一个具体搜索。一般来说最好先尝试一个合适的搜索;即使我找不到一个“复制”,在标准的Web搜索中寻找“C C++运算符”也会产生很多有用的结果。例如,为了找出什么是“代码> +/<代码>或 %,你会在哪里看到?同一个地方——引用中的操作符部分)。
0x0F or 00001111
0x0F << 4 = 0xF0 or 11110000
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