C語言中的移位運算符有左移運算符(<<)和右移運算符(>>)。
左移運算符(<<)將一個數的二進制表示向左移動指定的位數,并在右側用0填充。移動后的結果等于原數乘以2的移動位數次方。
例如,對于整數變量x和y,x << y表示將x的二進制表示向左移動y位。
右移運算符(>>)將一個數的二進制表示向右移動指定的位數,并根據符號位進行填充。如果數是正數,則右移后在左側用0填充;如果數是負數,則右移后在左側用1填充。移動后的結果等于原數除以2的移動位數次方(向下取整)。
例如,對于整數變量x和y,x >> y表示將x的二進制表示向右移動y位。
以下是使用移位運算符的示例:
#include <stdio.h>
int main() {
int x = 10; // 二進制表示為 0000 1010
// 左移運算符
int y = x << 2; // 將x向左移動2位,結果為 0010 1000
printf("左移運算結果: %d\n", y);
// 右移運算符
int z = x >> 1; // 將x向右移動1位,結果為 0000 0101
printf("右移運算結果: %d\n", z);
return 0;
}
輸出結果為:
左移運算結果: 40
右移運算結果: 5
請注意,移位運算符只能用于整數類型,不能用于浮點數類型。