C程式中左移右移的具體用法是什麼

2021-03-05 09:22:09 字數 5959 閱讀 9400

1樓:匿名使用者

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樓:匿名使用者

這是兩個位操作運算,是對引數二進位制方式的位移,移動後,空出的位用0補上。例如:

0111 0101 b << 2 :對這個數左移二位後:1101 0100 b;

再如:5 << 3 :先轉換成二進位制:0000 0101 b << 3 = 0010 1000 b = 0x28

c程式中,左移"<<"、右移">>" 的具體用法是什麼

3樓:匿名使用者

首先要知道是二進位制按位移動,且用0補位。比如a=5<<1,就是a等於5左移1位,具體就是先把5換算成二進位制0101,然後所有位左移一位,右邊用0補位,就變成了1010.

4樓:l舊夢顏

<< , >>是移位操作,數字在計算機中儲存為2進製

2 << 1 2的二進位制為10 左移及在10後面加0 變成100,等於4,及整個數字擴大了2倍,右移反之,縮小2倍

5樓:匿名使用者

這是兩個位**ai作運du算,是對引數二進zhi制方式的位移dao,移動後,空出的版

位用0補上。例如:

0111 0101 b << 2 :對這權個數左移二位後:1101 0100 b;

再如:5 << 3 :先轉換成二進位制:0000 0101 b << 3 = 0010 1000 b = 0x28

6樓:匿名使用者

int a=297;

int b=a<<3;就是a左移三位

int c=a>>2;就是右移兩位

c語言中的左移<<和右移>>怎樣運算的

7樓:雲冷宰迎南

移位操作符的兩個運算元必須是整型的。整個移位表示式的值的型別也是整型的,而且,左移位操作符與右移位操作符的運算並不對稱。

8樓:hunter影

左移 是指向左移動

右移 是指向右移動

具體指的是二進位制數平行移動

例如 001101 《2

變化 110100

其他也相同

關於c語言的左移(<<)和右移(>>)

9樓:匿名使用者

左移比較簡單,右邊補0(移幾位就補幾個0),左邊丟掉。

右移比較複雜,右移分兩種:

(1)邏輯右移,左邊補0(移幾位補幾位),右邊移出去的丟掉。

(2)算術右移,左邊補最高位(即原來的最高位是0就補0,是1就補1,因為最高位代表符號,這樣可以保證負數不會變成正數),右邊丟掉。

10樓:我不知道啊啊

可以定義乙個中間變數暫存要被移出去的位,正常移位之後再或上這個中間變數即可~

c語言 左移 右移的問題 << 或 >>

11樓:匿名使用者

左移 右移不會修改a本身

a=ox32 (16進製制) 0011 0010b=a<<2

這個時候b=1100 1000 對

那麼此時a=0011 0010

繼續c=a<<2

請問c是在原來a的初值(ox32)上移動

這個時候c=1100 1000

12樓:圍城

b=a<<2

這個時候b=1100 1000 對!

那麼此時a=0011 0010 沒變

接著c=a<<2

c是在原來a的初值上移動,因為a沒變

c=b=1100 1000

最後c=b=1100 1000

a=0011 0010

13樓:匿名使用者

a << 2 是不影響a 的值的,就像a +1不會把a值加1一樣 。

a << 2只是乙個表示式,返回的是表示式計算得到的值,其中並沒有賦值(『=』)操作啊。

大神能詳細說說,c語言中右移,左移,按位或,是怎麼用的?能給個例子?<< >> ^

14樓:城隍廟街景

int a=1;

a<<=1; // a=2

a>>=1; //a=1

a= a^a; //a=0

15樓:小黑跳大不解釋

這怎麼舉例。。。你有什麼不懂 我告訴你好了

c語言中>>和<<如何使用?

16樓:匿名使用者

c語言中<< 代表左移運算子,>> 代表右移運算子,位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。

<< 代表左移運算子:左移運算子用來將乙個數的各二進位制位全部左移若干位,移動的位數由右運算元指定,右運算元必須是非負值,其右邊空出的位用0填補,高位左移溢位則捨棄該高位。

例如:設無符號短整型變數a為0111(對應二進位制數為0000000100010001),則:a<<3 結果為0888(對應二進位制數為0000100010001000)。

>> 代表右移運算子:右移運算是將乙個二進位制位的運算元按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。

例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進位制的 00111000)向右移兩位等於 14 (即二進位制的 00001110) 。

17樓:路堯家的顧小言

1、左移運算子(<<):按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

格式:需要移位的數字 << 移位的次數

例如:3<<2

3轉換為二進位制是0011,所有數字左移2個位置,空位補0,得到1100,即十進位制數12。

2、右移運算子(>>):按二進位制把所有的數字向右移動對應位移位數,低位移出(捨棄),高位的空位補符號位(正數補零,負數補1)。

格式:需要移位的數字 >> 移位的次數

例如:11 >> 2

11的二進位制為1011,所有數向右移2個位置,因為11是正數,所以高位補0,得0010,是十進位制的2。

18樓:陳麗芬

c語言中的》和《分別是左移運算子和右移運算子,用於整數在二進位制形式的移位運算。

1、左移運算子(<<)

規則:按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

語法格式:需要移位的數字 << 移位的次數,例如: 3 << 2,則是將數字3左移2位。

數學意義:在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。

2、右移運算子(>>)

規則:按二進位制形式把所有的數字向右移動對應位移位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數補1。

語法格式:需要移位的數字 >> 移位的次數,例如11 >> 2,則是將數字11右移2位。

數學意義:右移一位相當於除2,右移n位相當於除以2的n次方。

擴充套件資料:

一、c語言運算符號的種類

1 算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)

、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

19樓:張震是

>>和《和是c語言中的「右移運算子」。一般情況下,是按位操作。

例如:short int a=8;a=a>>1; 1.a=0 000 1000 2.右移一位後:a= 0 000 100 3.補0:a=0 000

0100 4.化為十進位制數:a=4 舉例:int a=8;a=a>>1; 1.a=0 000 0000 0000 1000 2.右移一位後:

a= 0 000 0000 0000 100 3.補0:a=0 000 0000 0000 0100 4.化為十進位制數:a=4

特點:1、雙目運算子,就像+、-、*、/一樣,格式為(數1)>>(數2)

2、數1是被運算元,如被減數、被除數等;數2是右移位數。

3、優先順序低,結合性:從左向右運算 如:8>>1=?表示將被移數向右移動1位 如何操作?

化十進位制數為(注意了)對應的二進位制數,對應指格式對應。 通通右移,不足補0 3.化為十進位制數。

擴充套件資料

一、c語言運算符號的種類

1 算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)

、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6.條件運算子

這是乙個三目運算子,用於條件求值(?:)。

7.逗號運算子

用於把若干表示式組合成乙個表示式(,)。

8.指標運算子

用於取內容(*)和取位址(&)二種運算。

9.求位元組數運算子

用於計算資料型別所佔的位元組數(sizeof)。

10.特殊運算子

有括號(),下標,成員(→,.)等幾種。

20樓:非常可愛

在c語言中 《與<<=只有乙個區別就是作用不同。

c語言中的》和《分別是左移運算子和右移運算子,用於整數在二進位制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&位址與運算子

sizeof長度運算子

css中lineheight的具體用法是什麼?求教

line height就用來給一行內容的高度設定範圍的。比如說,有乙個這樣的div 它的意思就是說,這個div裡面的每一行文字,佔36個畫素。它經常應用在讓一些文字居中到乙個位置。比如像下面這個 如果你在這個div裡面寫一行文字的話,它預設是在這個div的左上角的。如果你想讓它在垂直方向上居中的話,...

數控車床中U與W的具體用法

u和w是相對座標。簡單點就是從起點到終點的距離。如一直徑30mm,長度20mm 分一次車削。程式如下 m3s1000 t11m8 g0x35z2 g1u 5f500 g1w 22f300 g0x50z2m5 m30絕對座標值 m3s1000 t11m8 g0x35z2 g1x30f500 g1z 2...

C中的《是所有數向左移一位,還是最後數向左移一位

假定在8位的作業系統上 那麼比如 1 2 那麼就是 0000 0001 變成 0000 0100 因為十進位制1就是二進位制0000 0001,往左移2位就是0000 0100 怎麼會有所有數呢,是針對所操作的數移位操作 c 中左移和右移位具體的步驟是怎麼回事?這是語言內部實現的。不過總之就是將數的...