C語言中的移位運算符有左移位運算符(<<)和右移位運算符(>>)。它們可以用于對一個數進行二進制位的移動。
左移位運算符(<<)將數的二進制表示向左移動指定的位數。移動過程中,右邊空出的位用0填充。例如,對于數值10(二進制表示為1010),執行10<<2的操作,結果為40(二進制表示為101000)。
右移位運算符(>>)將數的二進制表示向右移動指定的位數。移動過程中,左邊空出的位用0或者符號位填充,取決于所操作的數據類型。例如,對于數值10(二進制表示為1010),執行10>>2的操作,結果為2(二進制表示為10)。
以下是一個示例程序,演示了移位運算符的使用:
#include <stdio.h>
int main() {
int num = 10;
printf("原始數值: %d\n", num);
// 左移兩位
int leftShifted = num << 2;
printf("左移兩位的結果: %d\n", leftShifted);
// 右移兩位
int rightShifted = num >> 2;
printf("右移兩位的結果: %d\n", rightShifted);
return 0;
}
運行以上程序,輸出結果為:
原始數值: 10
左移兩位的結果: 40
右移兩位的結果: 2
這個示例演示了如何使用移位運算符對一個數進行移位操作,并打印出移位后的結果。