當前位置:首頁 » 編程語言 » c語言的移位運算符

c語言的移位運算符

發布時間: 2023-09-01 05:25:21

『壹』 C語言中位移位運算符

位移位運算符,顧名思議,用來移位用。
如:
a=0x01;
a <<=2;
則,a變成0x04了。
上面是左移,如果右移是a >>= 2;

『貳』 C語言按位左移運算規則

C語言中按位左移的運算符為<<,其規則如下:

對於操作a<<n,

1 按照二進制值每位向高位(書寫上是向左)移動n位;

2 最高位(最左邊的)n位捨去;

3 最低位(最右邊)填加n個0.


簡單起見,用char型舉例如下:

例一

0x12 << 3 =>

B00010010 << 3 =>

B10010 000(這里最高位的三個0被捨去,其它依次左移,最低位補三個0) =>

0x90

即0x12 << 3 = 0x90

例二

0x9E << 2 =>

B10011110 << 2 =>

B01111000 (最高位10捨去,最低位補兩個0)=>

0x78


可以編寫如下程序驗證:

#include<stdio.h>
voidcheck(chara,intn)
{
printf("0x%hhx<<%d=0x%hhx ",a,n,a<<n);
}

intmain()
{
check(0x12,3);
check(0x9e,2);

return0;
}

其運行結果為

0x12<<3=0x90
0x9e<<2=0x78

可以看到與我們計算結果是相符的。

『叄』 C語言中移位運算

右移對符號位的處理和左移不同,對於有符號整數來說,比如int類型,右移會保持符號位不變,例如:10100110 >>5(假設字長為8位),則得到的是 11111101。

總之,在C中,左移是邏輯/算術左移(兩者完全相同),右移是算術右移,會保持符號位不變.實際應用中可以根據情況用左/右移做快速的乘/除運算,這樣會比循環效率高很多.

所以,short a=0xf245,即a=1111001001000101,經過右移後,b=a>>8;b=1111111111110010,即b=0xfff2。注意是有符號右移為算術右移!!!

『肆』 C語言移位運算符怎麼用

右移對符號位的處理和左移不同,對於有符號整數來說,比如int類型,右移會保持符號位不變,例如:10100110
>>5(假設字長為8位),則得到的是
11111101。
總之,在c中,左移是邏輯/算術左移(兩者完全相同),右移是算術右移,會保持符號位不變.實際應用中可以根據情況用左/右移做快速的乘/除運算,這樣會比循環效率高很多.
所以,short
a=0xf245,即a=1111001001000101,經過右移後,b=a>>8;b=1111111111110010,即b=0xfff2。注意是有符號右移為算術右移!!!

『伍』 C語言左位移運算符和右位移運算符是什麼意思,怎麼運算,舉個例子..

就是把一個數轉化成二進制再直接對他進行操作
例如:
45>>2 //45右移兩位
45的二進制為:101101
右移兩位就為: 001011
001011再轉化為十進制為:11
所以45>>2= 11
左移運算符
45<<2
45的二進制為:101101
左移兩位就為:10110100
10110100再轉化為十進制為:180
所以45<<2=180

『陸』 C程序中,左移「<<」、右移「>>」 的具體用法是什麼

C語言中,「<<」為左移運算符,「>>」為右移運算符。

具體使用方法如下:

1、左移運算符(<<)

將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。

例:a = a << 2 將a的二進制位左移2位,右補0,

左移1位後a = a * 2;

若左移時舍棄的高位不包含1,則每左移一位,相當於該數乘以2。


2、右移運算符(>>)

將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

操作數每右移一位,相當於該數除以2。

例如:a = a >> 2 將a的二進制位右移2位。

左補0 or 補1 得看被移數是正還是負。

熱點內容
企業網站資料庫設計 發布:2025-03-13 19:48:18 瀏覽:465
絕對素數c語言 發布:2025-03-13 19:48:16 瀏覽:788
java工程師簡歷 發布:2025-03-13 19:42:33 瀏覽:456
我的世界2b2t伺服器海上農場 發布:2025-03-13 19:25:33 瀏覽:993
人工智慧安卓主板哪個好 發布:2025-03-13 19:15:16 瀏覽:237
android系統程序 發布:2025-03-13 19:12:15 瀏覽:37
如何修改樂視賬號密碼 發布:2025-03-13 18:56:12 瀏覽:971
c編程書籍 發布:2025-03-13 18:51:49 瀏覽:450
我的世界伺服器在哪玩 發布:2025-03-13 18:41:51 瀏覽:386
APK反編譯查看密碼加密方式 發布:2025-03-13 18:36:32 瀏覽:452