这个问题在这里已有答案:
我知道从定义中,>>运算符意味着Extract string from stream
,我们通常使用它将它存储在一个变量上,这样做:std::cin >> name;
但我见过这样的例子
crc = crc16xmodem_table[((crc >> 12) ^ (*data >> 4)) & 0x0F] ^ (crc << 4);
看着我们看到crc >> 12
,data >> 4
是什么意思?
用简单的数学术语来表达:
x<<y == x*2^y
x>>y == x/2^y
(整数除法)
例如,二进制中的3是11b
。 3>>1==1
因为3/2==1
和1==1b
。另一个例子:
21==10101b
21>>2==5
10101b>>10b==101b
21==10101b
21<<2==84
10101b<<10b==1010100b