C / C ++中的左移和右移运算符

左移

在左移位运算符中,左操作数的值向左移动右操作数指定的位数。

这是C语言中的左移运算符示例,

示例

#include <stdio.h>

int main() {
   int y = 28; // 11100
   int i = 0;

   for(i;i<=3;++i)
   printf("Left shift by %d: %d\n", i, y<<i);

   return 0;
}

输出结果

这是输出

Left shift by 0: 28
Left shift by 1: 56
Left shift by 2: 112
Left shift by 3: 224

右移

在右移位运算符中,左操作数的值向右移动右操作数指定的位数。

这是C语言中的右移运算符示例,

示例

#include <stdio.h>

int main() {
   int x = 10; // 1010
   int i = 0;

   for(i;i<2;i++)
   printf("Right shift by %d: %d\n", i, x>>i);

   return 0;
}

输出结果

这是输出

Right shift by 0: 10
Right shift by 1: 5