<<和>>運算符,通過箭頭方向可以很好的辨別,分別是C語言位運算符中的左移運算符和右移運算符,如表達式13<<2,它的運算過程為:13的用二進制(四個字節(jié),不考慮符號)表示為,0000 0000 0000 0000 0000 0000 0000 1101,那么向左移兩位,右側(cè)補0,則變?yōu)?span style="color: rgb(255, 0, 0);">0000 0000 0000 0000 0000 0000 0011 0100 換成十進制即變?yōu)?2,大家可以自行驗證。
同理,再舉一個例子,如表達式25>>3,表示25的二進制位向右移三位,由0000 0000 0000 0000 0000 0000 0001 1001變?yōu)?span style="color: rgb(255, 0, 0);">0000 0000 0000 0000 0000 0000 0000 0011,即十進制3。
大家可以自行計算驗證,也可以用過代碼實現(xiàn)如下:
#include<stdio.h> int main() { int a,b; a=13<<2; b=25>>3; printf("a=%d,b=%d\n",a,b); return 0; }
運行結(jié)果如下:
a=52,b=3
請大家理解后務必上機實驗。
移位運算符的作用:
1. 左移N位的本質(zhì)是乘以2的N次方。
2. 右移N位的本質(zhì)是除以2的N次方。
1772 | [編程入門]二進制移位練習 |
1773 | [編程入門]C語言循環(huán)移位 |
1774 | [編程入門]C語言之二進制位問題 |
1775 | [編程入門]自定義函數(shù)之通用位移 |
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程