2015-11-25 54 views
-9

我有這樣的代碼:是什麼意思? ç

#include<stdio.h> 

    int main(void) 
    { 
    if (-8 & 7) 
    { 
     printf("Math is good -8 and 7 are both not zero\n"); 
    } 
    else 
    { 
     printf("Everything we know is a lie!\n"); 
    } 
    system("PAUSE"); 
    return (0); 
    } 

我是新的C和我試圖找出這個&運營商做什麼,有人可以給我講解一下?

+0

請參閱:https://en.wikipedia.org/wiki/Bitwise_operations_in_C –

+0

這是一個簡單的錯字或概念錯誤;我們應該刪除這個問題。 – Prune

回答

4

出乎你的問題,該程序將打印

Everything we know is a lie! 

的位操作&是這樣的

dec binary 
-8 111111111111111111111000 
7 000000000000000000000111 
    ------------------------ 
& 000000000000000000000000 

但是,如果您使用的邏輯運算符&&因爲無論-87true的第一條語句

Math is good -8 and 7 are both not zero 

將打印。

1

「&」是按位AND,它取2個數字的相應位,並將它們相加。 「& &」是根據所比較的兩個條件的值返回真/假的布爾AND運算符。

+0

'&&'還有另一個非常重要的區別。 – Olaf