我知道从定义中>>运算符表示
Extract string from stream
,我们通常使用它将其存储在变量中,例如:
std::cin >> name;
但是我看过这样的例子
crc = crc16xmodem_table[((crc >> 12) ^ (*data >> 4)) & 0x0F] ^ (crc << 4);
看着我们看到crc >> 12
,data >> 4
是什么意思?
答案 0 :(得分:3)
用简单的数学术语表示:
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