当我们有一个数字时,>>运算符如何工作

时间:2019-01-04 12:31:04

标签: c++

我知道从定义中>>运算符表示 Extract string from stream,我们通常使用它将其存储在变量中,例如: std::cin >> name;

但是我看过这样的例子

        crc = crc16xmodem_table[((crc >> 12) ^ (*data >> 4)) & 0x0F] ^ (crc << 4);

看着我们看到crc >> 12data >> 4是什么意思?

1 个答案:

答案 0 :(得分:3)

用简单的数学术语表示:

x<<y == x*2^y

x>>y == x/2^y(整数除法)

例如,二进制3是11b3>>1==1是因为3/2==11==1b。 另一个例子:

21==10101b

21>>2==5

10101b>>10b==101b

21==10101b

21<<2==84

10101b<<10b==1010100b