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

更新於: 2021-03-08

795 次觀看

開啟您的 職業生涯

完成課程,獲得認證

開始
廣告