c語言運算子和的區別C語言運算子和的區別

2021-03-05 14:46:58 字數 5742 閱讀 2893

1樓:匿名使用者

& 是位運算子,也就是二進位制計算

07h = 111b

fch = 11111100b

07h & fch = 100b = 4h&& 是邏輯運算子,0代表false,其他數值代表true(一般用1表示)

07h 不是0,所以為true

fch 不是0,所以為true

true && true 的結果為 true,用1表示,所以07h && fch = 1h

2樓:

&是按二進位制位的與運算,比如兩個數的二進位制表示分別為101和110,那麼著兩個數進行&運算之後的只應該是100(1&1=1,0&1=0,1&0=0);

&&是邏輯與運算,兩個數a,b,只有他們同時為真(true)的時候進行&&運算得出的結果才為真(true),否則為假(false),例如 1 && 0 = 0, 1&&1 = 1

3樓:匿名使用者

&是位與,&&是與。位與就是說把一個數換算成2進位制,每一位分別與。是07就是換算成十進位制為4。

與就是兩個數變換成真假來算,c裡面非0即為真,所以結果

4樓:兔子和小強

&是按位與

&&是邏輯與

07(h) = 0000 0111(b)

fc(h) = 1111 1100(b)

07(h)&&fc(h) = 1

5樓:匿名使用者

&&: 邏輯與:07(h)&&fc(h) = 1

&: 算術與

6樓:憨豆阿呆

&是按位與運算子,&&是邏輯與運算子

c語言中 & 和 && 的區別

7樓:他de生活

區別:1.運算子性質不同。

&是一個位運算子。

&&是一個邏輯運算子。

2.作用不同。

&是將兩個二進位制的數逐位相與,結果是相與之後的結果。

&&就是判斷兩個表示式的真假性,只有兩個表示式同時為真才為真,有一個為假則為假,具有短路性質。

3.用途限制。

&除了是一個位運算子,也是取地址符。

&&就是一個單純的邏輯運算子,沒有任何其他含義。

8樓:靠名真tm難起

&和&&都是邏輯運算子,都是判斷兩邊同時真則為真,否則為假;但是&&當第一個條件不成之後,後面的條件都不執行了,而&則還是繼續執行,直到整個條件語句執行完為止。

如&&例子中的i++>5被執行了,而i++<9並沒有被執行,這就是他們的差別。&例子中的i++>5和i++<9都被執行了。

9樓:第九暗騎士

「&&」(邏輯與)是邏輯運算子。 「邏輯與」相當於生活中說的「並且」,就是兩個條件都同時成立的情況下「邏輯與」的運算結果才為「真」。

「&」是位運算子。

與運算(&)

雙目運算。二個位都置位(等於1)時,結果等於1,其它的結果都等於0。

1 & 1 == 1

1 & 0 == 0

0 & 1 == 0

0 & 0 == 0

與運算的一個用途是檢查指定位是否置位(等於1)。例如一個byte裡有標識位,要檢查第4位是否置位,**如下:

byte b = 50;

if ( b & 0x10 )

cout < < "bit four is set " < < endl;

else

cout < < "bit four is clear " < < endl;

上述**可表示為:

00110010 - b

& 00010000 - & 0x10

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

00010000 - result

可以看到第4位是置位了

10樓:匿名使用者

這兩個運算子都是二進位制的按位操作符。

&: 二進位制「與」,如 1010 & 1011 = 1010,1010 & 1000 = 1000。都為1時,結果是1,否則是0

|: 二進位制「或」,如 1010 | 1011 = 1011,1010 | 1000 = 1010。有1時,結果是1,都是0時,結果為0。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

11樓:匿名使用者

區別在於

a&b按位與& 總會計算兩個表示式的值

a&&b

而邏輯與&&,如果第一個表示式為假,後面一個表示式就不會計算了;

12樓:

&一般用作地址符號,如定義陣列a,&a就是指向陣列的第一個數的地址,&&是邏輯與的意思

c語言中的運算子的&與&& 和 |與||有什麼區別,用在什麼地方

13樓:yesyes科

和|&和|是位運算。&&和||表示邏輯關係,&&和||表示式最終的值只可能是真(1)或者假(0),而位運算表示式的值不限於0和1 兩者在特定情況下的效果是相同的。操作方法如下:

1、首先這裡用到字元的ascii碼,a的ascii碼為65,之後用scanf函式進行輸入。if設定為巢狀語句,判斷輸入的字元是不是在a-z之間,系統比較的是二者的ascii碼,來輸入大寫字母g。

2、還是字母大小寫的轉換,利用邏輯運算子對第一個程式進行改寫。使用邏輯與&&運算子之後,**更易於理解,而且計算機處理的時候更容易。

3、將letter = letter - 『a' = 'a'改為了letter  += 'a' - 'a',**可讀性提高,開始執行,輸入一個【,可以看到,非字母字元的輸出達到了解決。

4、接下來要用五個新函式去完成這個程式,isalpha(),這個函式用來測試字元是否為字母,是返回true,isupper()和islower()用來測試字母是大寫還是小寫,最後兩個函式toupper和tolower分別是用來將字元轉換為大寫和小寫。

5、執行輸入g,就完成了。

14樓:匿名使用者

&和|是位運算;&&和||表示邏輯關係

&&和||表示式最終的值只可能是真(1)或者假(0)

而位運算表示式的值不限於0和1兩者在特定情況下的效果是相同的,但是不建議這麼做,會讓人產生困惑

15樓:匿名使用者

|,c語言中邏輯運算子(&&,||,!)和位運算子號(&,|,^)的區別

在c語言中,程式設計者經常混淆兩組運算子:(&&,||,!)和(&,|,^)。

第一組是邏輯運算子,它的運算元是布林型,而第二組則是位運算子,其運算元是位序列。在布林型運算元中,只有兩個數值,0或1。c語言規定,在邏輯運算中,所有的非0數值都看做1處理。

而位序列則可以是有無符號的字元型,整型,長短整型等。在位運算中,是相應的位之間進行邏輯運算。因此,從邏輯上講,位運算過程包含多個邏輯運算過程。

通常,位運算運算元選擇無符號型資料。

1 應用例項

#include

int main(int argc, char *argvs)執行結果是:

false: a && b is 0

true: a && s is 1

true: a && c is 1

true: s && c is 1

a & b is 0

a & s is 10

a & c is 1

s & c is 0

a & 0x110 is 10

16樓:匿名使用者

& |是位操作,一般操作在某個變數上

&& || 是邏輯判斷,並且和或者的意思,一般操作在表示式邏輯上的,如:

if ( a&& b ) 表示 a為真且b為真c= a&b ; //進行運算,得到一個新的結果

17樓:竹冽巖青

&是 按位與 比如a=0xf0(11110000b),b=0xcc(11001100),那麼a&b=0xc0(11000000b),意思就是每組二進位制位響應地做與運算

同理 | 是按位取或,a|b=0xfc(11111100b)意思就是每組二進位制位相應地做或運算。

&&和||就是判斷邏輯的與和或,比如(a==b)&&(c==d)意思就是,a等於b,並且c等於d時表示式為真,邏輯上的

c語言中&與&&的區別

18樓:他de生活

區別:1.運算子性質不同。

&是一個位運算子。

&&是一個邏輯運算子。

2.作用不同。

&是將兩個二進位制的數逐位相與,結果是相與之後的結果。

&&就是判斷兩個表示式的真假性,只有兩個表示式同時為真才為真,有一個為假則為假,具有短路性質。

3.用途限制。

&除了是一個位運算子,也是取地址符。

&&就是一個單純的邏輯運算子,沒有任何其他含義。

19樓:匿名使用者

&是一個位運算子,就是將兩個二進位制的數逐位相與,就是都是1才是1,只要有一個為0則為0,結果是相與之後的結果。

&&是一個邏輯運算子,就是判斷兩個表示式的真假性,只有兩個表示式同時為真才為真,有一個為假則為假,具有短路性質。

20樓:靠名真tm難起

&和&&都是邏輯運算子,都是判斷兩邊同時真則為真,否則為假;但是&&當第一個條件不成之後,後面的條件都不執行了,而&則還是繼續執行,直到整個條件語句執行完為止。

如&&例子中的i++>5被執行了,而i++<9並沒有被執行,這就是他們的差別。&例子中的i++>5和i++<9都被執行了。

21樓:月光疾風

"&&"表示"與", 意思是條件必須同時成立"||" 表示"或", 意思是條件有一個成立即可.

if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))這個是判斷銳角三角形的條件,你只要學過數學就應該知道銳角三角形的成立條件是:任意兩邊長度的平方和大於第三邊長度的平方。

所以要用"&&"而不是"||"。

22樓:匿名使用者

因為if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))這三個條件必須同時滿足(也就是邏輯與)的條件下才是銳角三角形。

||的話只要一個條件滿足就可以。

c語言賦值運算子,C語言賦值運算子

a a a a 分步 1 a a a a a 9 a 9 a a 9,a 6 2 a 6 a 6 6 a 12a a a a 1 a a a 9 2 a 9 a 9 9 a 0 3 a 0 a 0 在c語言中11種賦值運算子的具體含義,用法?1.六個變數 表示式的賦值 是賦值運算子,是除後賦值,是乘...

c語言運算子 和各有什麼功能,C語言運算子 和 各有什麼功能?

表示按位或,規則是一個為1或二個都為1,結果為1,表示按位異或,規則是相同為0,相異為1。首先把兩個運算元化成二進位制,然後按位進位制操作 5 35的二進位制00000101 3的二進位制00000011 00000111 化為十進位制是7 5 35的二進位制00000101 3的二進位制00000...

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 等價於...