当我们有一个数字[重复]时,>>运算符如何工作?

问题描述 投票:-3回答:1

这个问题在这里已有答案:

我知道从定义中,>>运算符意味着Extract string from stream,我们通常使用它将它存储在一个变量上,这样做:std::cin >> name;

但我见过这样的例子

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

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

c++
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.