C 語言中的移位運算是什麼?
問題
用 C 語言編寫一個簡單的程式來顯示一個數字的左移、右移和補碼。
解決方案
左移
如果將變數值左移一次,則其值會加倍。
例如,a = 10,則 a<<1 = 20
右移
如果將變數值右移一次,則其值變為原值的二分之一。
例如,a = 10,則 a>>1 = 5
示例
以下是進行移位運算的 C 程式 −
#include<stdio.h> main (){ int a=9; printf("Rightshift of a = %d
",a>>1);//4// printf("Leftshift of a = %d
",a<<1);//18// printf("Compliment of a = %d
",~a);//-[9+1]// printf("Rightshift by 2 of a = %d
",a>>2);//2// printf("Leftshift by 2 of a = %d
",a<<2);//36// }
輸出
當執行上述程式時,它會產生以下結果 −
Rightshift of a = 4 Leftshift of a = 18 Compliment of a = -10 Rightshift by 2 of a = 2 Leftshift by 2 of a = 36
廣告