Ca 2 48輸出a竟然為1,為什麼

2022-10-25 06:01:39 字數 1080 閱讀 7933

1樓:匿名使用者

樓上的都說的很對。

這個表示式可以這麼分解

a = ( 2*4 != !8 )

從右往左計算,

首先 !8 的結果為 0 (任何非零值求邏輯反,都為零;零的邏輯反為1)

代入後,再看

( 2*4 != 0 )

中間的 != 是一個邏輯運算子號,不等式成立則為1,不成立則為0因為左右不等,所以結果為1。再代入,得到

a=1這樣解釋,能看懂嗎?

2樓:

右邊是一個邏輯表示式,2*4!=!8,這個表示式意思是2*4不等於8的位取反,值為真,也就是1,所以最後a=1

汗,錯了,c++的取反操作符是~,不好意思

3樓:匿名使用者

題目中所出現的符號的優先順序高到低如下:(各種參考書內都有)! 非

* 乘

!= 不等於

等於所以:

!8 邏輯上就是0 (!true)==02*4就是8

8 != 0 就是1 (true)=1

4樓:匿名使用者

!=這個是不等於。

!這個是位運算嘛,是求反的意思,所以是一個8的反,當然不會等於左邊這個2*4是8嘛。

也就是8不等於8的求反。

a的最後值就是1了。

5樓:喜揚揚

我試過了,!8==0,程式跑出來的結果。

6樓:匿名使用者

如果我沒理解錯

是要先算!8的而!8==0

得到a=2*4!=0

又因為*的優先順序比!=高 先算*號

然後有8!=0 確實,8不等於0,這是一個真命題,為1然後賦值給a 所以a=1

7樓:匿名使用者

從右往左算

!8 == 0;

2*4 != 0是true,用1表示

結果是1有什麼問題?!

8樓:匿名使用者

1樓解釋是正確的...我建議分給他..因為他第一個說

一道C語言題,為什麼輸出的結果為負數

在你的switch語句最後都加一個default 看一下switch d switch u 如果出現error這行,說明你的fflush 沒有起作用,改正方法是在scanf 函式後,加一個getchar 如果沒有出現,把你的輸入資訊粘出來,即x d u都是什麼。再幫你看 這個問題有多種可能,不一而足...

易語言 除錯輸出 文字比較ab真 為什麼結果為

排序方法類似於資源管理器的檔案 夾 排序,根據檔案 夾 名首字母比較大小來排序。如果返回為 1 表示文字一小於文字二 0 表示文字一等於文字二 1 表示文字一大於文字二。如果比較時區分大小寫,也可以使用比較運算子進行同樣的操作。因為文字排列是有順序的 例如 1 2 3 aa 值為1 呼叫格式 整數型...

1 不知周之夢為蝴蝶與,蝴蝶之夢為周為什麼不是唯心主義,是不可知論

1.屬不可知論範疇。因為是互相不知,沒有一樣是可知的。莊周夢為胡蝶不可知,蝴蝶夢為莊周也不可知,否定或者模糊一切可能性的就是不可知論。2.就是說,這個實物還未出現,就已經可以瞭解這個未出現的事物的 理 通常 理 在哲學中都是指代一種唯心的理念性的本質。3.主觀唯心主義是世界的本源是完全由意識創造出來...