2015-04-20 121 views
-1
int u = 21; 
int v = 10; 

if (u && v) printf(「 Time to move on!! 」); 
if (u & v) printf(「Do it today!! \n」); 

這隻打印「時間繼續!!」這是有道理的,因爲u和v在第一個if語句中都是真實的,但對於「if(u & v)」我不確定它是如何確定這是真還是假。我知道它是21和10的兩個二進制表示,但那又如何?謝謝!爲什麼這個按位運算符會導致錯誤?

回答

7

21二進制是,而二進制中的10是01010。按位&返回000000,即false

+0

好吧,並說如果它是23所以10111和10所以01010這將給00010,這會導致1如此真實? – user3373360

+2

這會導致2('00010'在'2'位置有'1')。任何非零都會導致「真」。 – wolfPack88

+0

哦,好的,是的,這是有道理哈哈謝謝 – user3373360

相關問題