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型別資料 切換使用時 後者資...