c語言的複合賦值符分別有什麼用啊??拜託了謝謝

2021-03-27 09:23:35 字數 5113 閱讀 8354

1樓:匿名使用者

在賦值符「=」之前加上其它二目運算子可構成複合賦值符。

如 :  +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。

構成複合賦值表示式的一般形式為: 變數 雙目運算子=表示式

它等效於 變數=變數 運算子 表示式

a<<=n(整數):將變數a的值的二進位制形式先左移n位(等效於將a二進位制值乘以2的n次方),再將所得的值賦給a;

a>>=n(整數):將變數a的值的二進位制形式先右移n位(等效於將a二進位制值除以2的n次方),再將所得的值賦給a;

a&=n :將a的二進位制值與n的二進位制值相與(a&&n),將所得賦值給a;

a^= n:將a的二進位制值與n的二進位制值相異或(a^n),將所得賦值給a;

a|= n:將a的二進位制值與n的二進位制值相或(a||n),將所得賦值給a;

希望對你有幫助,請採納~

2樓:匿名使用者

a<<=1;//a左移1位賦值給a

a>>=1;// 右移

a&=1;//a與1按位相與後賦值給a

a^=1;// 異或a|=1;// 或

3樓:匿名使用者

<<= 位運算左移

>>= 位運算右移

&= 位運算與

^= 位運算異或

|= 位運算或

c語言中複合位運算賦值(&=,|=,^=,>>=,<<=)表示什麼意思?

4樓:匿名使用者

&=,按位與後賦值,變數&=表示式;

|=,按位或後賦值,變數|=表示式;

^=,按位異或後賦值,變數^=表示式;

>>=,右移後賦值,變數》=表示式;

<<=,左移後賦值,變數<<=表示式;

類似的還有,

/=,除後賦值,變數/=表示式;

*=,乘後賦值,變數*=表示式;

%=,取模後賦值,變數%=表示式;

+=,加後賦值變數,+=表示式;

-=,減後賦值變數,-=表示式;

這些是c/c++獨有的複合賦值運算子,結合方向,從右向左。是一種縮寫形式,使得對變數的改變更為簡潔,更有效率。

5樓:匿名使用者

位運算子與賦值運算子可以組成複合賦值運算子如 :&=, |=, >>=, <<=, ∧ =

和+=,-=,*=,/=類似.

即把左邊值與右邊值位運算之後賦值給左邊變數.

例如 ,a & = b 相當於 a = a & b 。 a << =2 相當於 :a = a << 2 。

明白了沒有呀?

6樓:匿名使用者

舉個例子:

a+=5 相當於 a=a+5

即先進行運算再賦值

c語言,位符合賦值運算子, <<=,>>=,&=,^=,!=, 分別什麼含義啊?

7樓:

1.= 賦值運算子 變數

=表示式 如:a=3;將a的值賦為3

2./= 除後賦值 變數/=表示式 如:a/=3;即a=a/3

3.*= 乘後賦值 變數*=表示式 如:a*=3;即a=a*3

4.%= 取模後賦值 變數%=表示式 如:a%=3;即a=a%3

5.+= 加後賦值 變數+=表示式 如:a+=3;即a=a+3

6.-= 減後賦值 變數-=表示式 如:a-=3;即a=a-3

7.<<= 左移後賦值 變數<<=表示式 左移就是將《左邊的數的二進位制各位全部左移若干位,《右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方

8.>>= 右移後賦值 變數》=表示式 右移運算子是用來將一個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0。對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」)。

注意:對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位為0(該數為正),則左邊也是移入0。如果符號位原來為1(即負數),則左邊移入0還是1,要取決於所用的計算機系統。

有的系統移入0,有的

系統移入1。移入0的稱為「邏輯移位」,即簡單移位;移入1的稱為「算術移位」。

9.&= 按位與後賦值 變數&=表示式 按位與是指:參加運算的兩個資料,按二進位制位進行「與」運算。

如果兩個相應的二進位制位都為1,則該位的結果值為1;否則為0。這裡的1可以理解為邏輯中的true,0可以理解為邏輯中的false。按位與其實與邏輯上「與」的運算規則一致。

邏輯上的「與」,要求運算數全真,結果才為真。若,a=true,b=true,則a∩b=true

10. ^= 按位異或後賦值 變數^=表示式 參與運算的兩個量按照對應的位進行異或運算,且

0^0→0, 0^1→1, 1^0→1, 1^1→0

此外,一個數與0異或仍保持不變,即a^0=a

一個數與自己異或結果為0,即a^a=0

11.|= 按位或後賦值 變數|=表示式 參與運算的兩個量按照對應位進行或運算,且

0|0→0, 0|1→1, 1|0→1, 1|1→1

這些位運算都是與二進位制碼有關的,所以多弄弄也就會了

c語言中「>>=,<<=,&=,^=,|=」分別表示什麼意思?請舉例說明

8樓:弋風

1、c語言中的 >>= 意思為:右移後

賦值**示例為:

x = 8; x >>= 3;

右移後結果為:00000000 00000000 00000000 00000001

2、c語言中的 <<= 意思為:左移後賦值**示例為:

x = 8;

x <<= 3;

左移後賦值結果為:00000000 00000000 00000000 01000000

3、c語言中的 &= 意思為:按位與後賦值**示例為:

x = 0x02;

x &= 0x01;

按位與後的結果為:0x00

4、c語言中的 ^= 意思為:按位異或後賦值**示例為:

x = 0x02;

x ^= 0x01;

按位異或的結果為:0x03 等同於00115、c語言中的 |= 意思為:按位或後賦值**示例為:

x = 0x02;

x  |= 0x01;

按位或的結果為:0x03 等同於0011

9樓:匿名使用者

複合賦值。a>>=b相當於 a = a >> b; 以此類推。

a>>=b 表示把二進位制a右移b位,比如:

a = 8;

a >>= 3;

即:二進位制8: 00000000 00000000 00000000 00001000

右移3位: 00000000 00000000 00000000 00000001

結果是1,再把右移結果賦值給a, 即最後a=1。

<<= 同上,只不過是左移賦值。

&= 是按位與之後賦值,^=是按位異或之後賦值,|=是按位或之後賦值。與,或以及異或的操作很簡單:

101010         101010        101010

& 011100       | 011100      ^ 011100

---------     ----------    ----------

001000         111110        110110

10樓:匿名使用者

a = 0010(0x02)

a >>= 1; (a 右移1位並把右移的結果重新賦值給a) 此時a = 0001(0x01);

a <<= 1;(a左移1位並把左移的結果重新賦值給a) 此時 a = 0100(0x04);

a &= 0x01;( a與0x01 按位與,並把按位與的結果重新賦值給a)。此時a = 0x0;

a |= 0x01;( a與0x01 按位或,並把按位或的結果重新賦值給a)。此時a = 0011(0x03);

a ^= 0x01;( a與0x01 按位異或,並把按位異或的結果重新賦值給a)。此時a = 0x03;(異或的意思就是,該位均為相同的則該位結果為0,該位均為不同的則該位結果為1)

c語言中賦值語句,《=,&=,∧=,|=,分別是什麼意思

11樓:_____一葉障目

<=是比較符號小於等於,不是賦值號

<<=:a<<=b;//等價於a=a<算

&=:a&=b;//等價於a=a&b;&是按位與^=:a^=b;//等價於a=a^b;^是按位異或|=:a|=b;//等價於a=a|b;|是按位或

12樓:匿名使用者

a &= b;

相當於a = a&b;

同理a <<=b;

相當於a = a <

以此類推

13樓:

我見過 -> =& 沒有見過你哪表示方法

c語言的複合賦值運算子

14樓:gta小雞

a=a+1,首先要求來

賦值號右側的表達自式a的值,然後將

它與1相加,接著求賦值號左側的表示式a的值,最後將加法的結果寫回a中,所以表示式a被求值了兩次;a+=1,首先求得賦值號左側的表示式a的值,將這個值加上1,然後寫回a中,表示式a只被求值了一次。

這是理想的情況,實際中現代編譯器都非常智慧,在開啟編譯優化時,a=a+1這樣的語句將被直接優化為a+=1甚至是a++。

15樓:戲遠巴乙

第一步:

baia=a/(a-6),a的值傳遞給第二步du進行下一zhi步計算

第二步:daoa=a*a,a的值回傳遞給第三步進答行下一步計算第三步:a=a+a,a的最終結果在這裡記住兩句話:

1、=賦值號,自右向左進行;

2、a+=1相當於a=a+1。這個a/=a-6先把a-6看成一個數,a/=1不就是a=a/1嘛;

C 複合賦值運算子問題,c語言,複合賦值運算子

執行順序 1 a 1 2 2.a被替換為31 31 1 23.計算後得到 31 2 15 小數被忽略 4.a a 1 31 1 32最後a 32,表示式a 1 2 15 a x等價與a a x 所以a a a a就等價於a a a a a a x等價與a a x 所以,又有a a a a a 等價於...

c語言中規定賦值運算子的左邊必須是什麼

賦值運算子的左邊必bai須是變數。簡單du賦值運zhi算符記為 由 連線的式dao子稱為賦值表專達式。其一 屬般形式為 變數 表示式 例如 x a bw sin a sin b y i j 賦值表示式的功能是計算表示式的值再賦予左邊的變數。賦值運算子具有右結合性,因此a b c 5可理解為a b c...

c語言,union有什麼用,C語言union的用法

union是一種資料型別,在一段物理空間內可以儲存你定義的不同的幾個資料型別的一種。目的是節省空間和建立多個變數的花銷。比如unionu 這個變數u為8個位元組 int 4位元組 double 8位元組 這時候你可以用u.i儲存int型別資料 或者用u.j儲存double型別資料 切換使用時 後者資...