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
廣告
資料結構
網路工程
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP