當前位置:首頁 » 編程語言 » 在c語言左移

在c語言左移

發布時間: 2024-07-09 02:25:10

1. 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 得看被移數是正還是負。

2. C語言和單片機中的左移右移

# include "reg51.h" // 包含頭文件
#define uchar unsigned char
void delay02s(void) // 延時0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}

void main (void) // 主函數
{
uchar i,j;
while (1) // 死循環
{
j=0x01; // j初始化為0x01,左移初始值
for(i=0;i<8;i++) // for循環語句,完成8個循環
{
P1= ~ j; // 對變數j 中的值按位取反後,從P1口輸出
delay02s( ); // 延時0.2s
j= j<<1; // 左移1位
}
j=0x80; // 設置右移初始值j為0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}

3. 關於C語言的左移(<<)和右移(>>)

左移比較簡單,右邊補0(移幾位就補幾個0),左邊丟掉。
右移比較復雜,右移分兩種:
(1)邏輯右移,左邊補0(移幾位補幾位),右邊移出去的丟掉。
(2)算術右移,左邊補最高位(即原來的最高位是0就補0,是1就補1,因為最高位代表符號,這樣可以保證負數不會變成正數),右邊丟掉。

4. C語言中怎樣表示移位啊例如將某個值左移兩位

利用位操作:"<<"就是左移 ">>"就是右移

舉個例子:將a左移2位,然後賦給a
a<<=2 也即是a=a<<2

在C語言中左移1位,相當於乘2,右移相當於除2。

5. c語言左移問題

但左移概念是左邊去掉n個二進制位,右邊補n個零,但這是指原來的二進制數是「機器數」。就是如果使用unsigned char 來存儲這個數的話,就是這樣的。
例如:0001 0010(十進制為18)左移4位,
得到的應該是0010 0000(十進制32),但是18*16≡32(模256)
當左移左邊不去零,右邊單純補零的時候得到0001 0010 0000,這時候得到的恰好是
288=18*16,但這只是單純往左移了(「丟失」了移出的4位)
如果仍是存儲在unsigned char 中的話,就仍是0010 0000(十進制32)
用左移的時候194<<4,是1100 0010 0000,若仍是存儲在unsigned char 中的話,就仍是0010 0000,這就是溢出了。

熱點內容
安卓演算法 發布:2024-10-06 23:14:20 瀏覽:183
域名訪問404 發布:2024-10-06 23:08:52 瀏覽:708
訪問筆錄模版 發布:2024-10-06 22:36:54 瀏覽:140
多用途編程 發布:2024-10-06 22:35:58 瀏覽:617
msde2000資料庫下載 發布:2024-10-06 22:33:35 瀏覽:44
什麼配置可以算神機 發布:2024-10-06 21:52:09 瀏覽:422
兩條吊筋怎麼配置高度 發布:2024-10-06 21:46:22 瀏覽:492
安卓平板b站緩存文件位置 發布:2024-10-06 21:44:43 瀏覽:909
能緩存視頻的播放器 發布:2024-10-06 21:36:48 瀏覽:135
安卓接入點哪個好 發布:2024-10-06 21:25:01 瀏覽:453