1樓:匿名使用者
舉個例子你就明白了。像&=,+=,|=這些比較常用一點兒。比如 int a; a +2 與 a+=2;效果是不一樣的,a+2,並未改變a的值,但是a+=2,效果等於a = a+2;a的值實際上是增加了2.
所以《也是一樣的,a<<2這句只是一個運算,就是a左移2位,但是並未改變a的值,但是a<<=2,相當於 a = a<<2,改變了a的值
就像是 int x = 1;x +1;這時x的值並沒有改,但是x+=1,代表x加了1,這時x= 2;就這樣,不明白再問我
2樓:匿名使用者
a <<=5;
就相當於
a = a <<5;
操作完給自己賦值
《就只有一個功能,就是移位
3樓:匿名使用者
針對你追問中的問題:語句return(x >> (p+1-n) & ~(~0 << n); 移位運算子的優先順序高於位操作運算子,該語句看成x右移 (p+1-n) 位後和 ~(~0 << n) 這個運算元進行與運算。
這裡為相應變數代入數值作為例子,設x為12,(p+1-n) 為2,n為1,則x >> (p+1-n):12>>2 ,假設是8位的系統,則為:00001100>>2 -> 00000011(對應十進位制為3),再看 ~(~0 << n),即為
~(~0 << 1) ,看裡層的~0 << 1 (注二進位制:0:00000000,~0:
11111111) ,左移1位後為:11111110,再取反:00000001,最後對二者進行與運算00000011 & 00000001 ,為00000001,對應十進位制的值為1,該值經由return語句被返回,由呼叫該函式的函式接收,如:
int getnum(int p,int n)int main()
4樓:匿名使用者
a <<= b 等價於 a = a << b,除了只被求值一次。
在c語言中 <<與<<=的區別
5樓:海天盛筵
在c語言中bai
《與<<=唯一的一個區別就du
是作用不同。
c語言zhi
中的>>和《分別dao
是左移運算子和右回移運算子,用於整數在二進答制形式的移位運算;
關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。
在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。
擴充套件資料:
<<、=運算子在c語言中的功能:
1、《的功能
把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。如a<2、=的功能
對物件進行賦值,如a=b,則a的值為b。在c語言中也常常將賦值運算子=與其他的運算子結合起來,表示按照優先順序順序處理物件後,再對物件進行賦值。
結合方向右結合(自右至左)單目運算子
!邏輯非運算子
~按位取反運算子
++自增運算子
--自減運算子
-負號運算子
(型別)型別轉換運算子
*指標運算子
&地址與運算子
sizeof長度運算子
6樓:非常可愛
《與<<=只有一du個區別就是作用zhi不同。
c語言dao中的》和《分別是左移運版算符和右移運算子,用於整權數在二進位制形式的移位運算;
關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。
在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。
擴充套件資料結合方向右結合(自右至左)單目運算子
!邏輯非運算子
~按位取反運算子
++自增運算子
--自減運算子
-負號運算子
(型別)型別轉換運算子
*指標運算子
&地址與運算子
sizeof長度運算子
7樓:匿名使用者
x << 1 得到的結果是左移1位後的值,它被儲存在一個臨時變數中,與x無關,即x的值不變。
回x <<= 1 相當於 x = x << 1,是答將x左移1位以後的值儲存回x中,x發生了變化。
好比說:
x + 10 得到比x大10的值——在臨時變數中,但x不變。
x += 10 則是x增大10,x變了。
8樓:匿名使用者
不一樣,看看邏輯運算和賦值 優先順序。
9樓:匿名使用者
直接用,別超額度就行
c語言中=和==有什麼區別
10樓:匿名使用者
= 是賦值操作
==是比較是否相等操作
if(i=1)是永遠成立的
if(i==1)只有當1值是1才成立
11樓:賈文浩
i=i是把數字1的值賦給i
i==1是i的值等於1
12樓:
前者為賦值,後者為判斷
13樓:匿名使用者
=是複製語句,==是判斷前後是否相等
14樓:鍾影南門弘大
=是賦值操作,
==是比較是否相等操作。
15樓:亥熙延潔玉
你是初學吧!“=”是賦值,例如inta=
3;intb=
a;那麼b
=3.“==”關係運算子,表示恆等。一般用在條件判斷中,例如if(null
==fp),如果fp恆等與null,那麼。。。。;
16樓:閻晨漫漾漾
一個=是賦值,兩個則是判斷是否相等
17樓:首桂蘭慕溪
c語言中的
\代表轉義,輸出
.\會提示錯誤,但是./是沒有問題的只是兩個字元而已如果要輸出\
那麼就要寫兩個\
即\\才可以
。c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。
望採納,謝謝
18樓:操清昶養琪
=號是"附值"==是"精等於"區別就在於是不是能夠等於一個變數如:a=3,a=b把b的值賦給a;a==3a精等於3,但是卻不能寫成a==b;所以最大的區別就在於:==號右側只能是個確定得知,而不能是個變數,而=號可以。
19樓:文賢儀春曉
"="是賦值運算子;
“==”是等於運算子。
20樓:賁心繫玲瓏
=是賦值的意思,==才是判斷兩個變數是否相等。
21樓:允贍卞舉
比如if(a==b)
為什麼不能是if(a=b)?
=是賦值運算子,使用賦值運算子=可以把計算的結果儲存到變數中。
而==是"等於"的意思。用法很簡單.
a=b(即將b賦值給變數a,而不是a等於b)是一個賦值操作.
如果你用了賦值語句(a=b)那麼程式運算的結果將很有可能是錯誤的.在一個賦值(單目=)表示式計算後將改變該表示式和變數的值.如你所說的a=b;則a和表示式a=b的值均為b,條件判斷語句if(a=b)在你的程式中將毫無意義.
在某本國產c++教科書中這被稱為賦值運算子(=)的"***".
a==b的意思即a等於b,在條件判斷時兩邊相等則條件成立,否則不成立.
參考資料:
22樓:鬱宜似瀅瀅
=是賦值,和數學中的函式一樣,a=b
+1;表示b+1的值賦予a,而==表示判斷兩個值是否相等,如a
==b就表示讓計算機判斷a是否等於b,用於對條件是否滿足的判斷
c語言中/n與\n的區別是什麼?
23樓:匿名使用者
\n 轉義字元 回車 換行符 acsii 13/n 就是字串 /n 沒有轉義的意思 按原樣輸出例如printf("test\n");
printf("test/n");
結果是專
test
test/n
若printf("test/n");
printf("test\n");
結果是test/ntest
//注test/ntest下一行為
屬\n效果
c語言中巨集定義的1<<0 和直接定義1有什麼區別
24樓:匿名使用者
#define e1 1<<0
#define e2 1
e1+4 // 結果是16
e2+4 // 結果是5
至於是bug還是故意如此,在下就不知道了
25樓:金色潛鳥
巨集定義#define eot 1 << 0是規定在預編譯時,把 下面程式中 遇到的 詞 eot 用 字串 1 << 0 替代。
所以 不能 換成版 字元 1。
例如:權
#define eot 1 << 0
int x=1;
x = x + eot + 2;
printf("%#x ", x);
和#define eot 1
int x=1;
x = x + eot + 2;
printf("%#x ", x);
得到的結果 不同。前者 0x8, 後者 0x4--------
除非你已看過整個程式,你能確認 用 1 << 0 替代 和 用 1 替代 結果 一樣。
c語言中,使用>與>=,<與<=的區別是什麼?
26樓:萢萢
>不包括等於,>=包括等於的情況。
《不包括等於,<=包括等於的情況。
c語言中“>>=,<<=,&=,^=,|=”分別表示什麼意思?請舉例說明
27樓:弋風
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
28樓:匿名使用者
複合賦值。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
29樓:匿名使用者
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語言中與的區別,C語言中 與 的區別
區別如復下表 擴充套件資料具體區別制的例子 bai1 c 語言輸入輸出du printf a d,b d zhi,a,b scanf d d d a,b,c 2 vb 語言的輸入輸出 inputbox x 輸入 x 的值dao print x x 而且,這兩種運算子,還分為字首運算和字尾運算 如 i...
c語言中 和 的區別,c語言中「 」號是什麼意思?
c語言中 與 的區別如下 是否為單行註釋。是用於多種語言的單行註釋語句。是註釋語句,不限制行數,在 和 之間的即為註釋。實用性的區別。是用於多種語言的單行註釋語句,適用方便快捷,但是實用性不如多行註釋。是註釋語句,不限制行數,在 和 之間的即為註釋,實用性大,但是符號鍵盤敲打麻煩。程式編譯時,不對註...
c語言中a與a的區別是什麼,簡單點講
a 7a 先使用a的值,a在自增 a 先自增在使用a的值 b a b 7 c a c 8 第乙個是先運算,再自增。第二個是先自增,再運算 c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a 是先執行 運算,在返回a的值。例如 include int main a 7...