[理工] 位元運算問題

看板Grad-ProbAsk作者 (keep my heart calm)時間11年前 (2013/05/20 19:08), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
main() { int a = 0, b = 0x00000003, c = 0; a = a | (1 << 1); // a | = 1 << 1; a = a | (1 << 2); // a | = 1 << 2; printf("a = %d\n" , a); a = a & ~(1 << 2); printf("a = %d\n" , a); c = a ^ b; printf("c = %d\n" , c); } 輸出: a = 6 a = 2 c = 1 小妹不懂的是以下兩個主要問題: 1. 程式中整個位元運算的邏輯觀念? 2. 為什麼輸出結果第一個a是6? 下一個a是2? 而c是1呢? 麻煩高手幫忙解答,萬分感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.164.252.82

05/20 23:24, , 1F
這id...我記的之前好像有回答過你問題,不過之後就把文章
05/20 23:24, 1F

05/20 23:24, , 2F
删了 爲什麽呢?
05/20 23:24, 2F

05/20 23:44, , 3F
我後來看到po我前面的人刪,我就跟著刪了 Orz
05/20 23:44, 3F

05/20 23:50, , 4F
建議沒事不要刪文,對回過你文章的人不尊重。至於這題就二
05/20 23:50, 4F

05/20 23:51, , 5F
進位 and or shift的概念而已 瞭解一下| & <<是什麽意思應
05/20 23:51, 5F

05/20 23:51, , 6F
該就懂了
05/20 23:51, 6F

05/20 23:52, , 7F
這樣應該比較對照 & | <<
05/20 23:52, 7F

05/20 23:52, , 8F
S大感謝你上次的解答,上次是我第一次在這個版po文
05/20 23:52, 8F

05/20 23:55, , 9F
我不懂規矩,造成你感覺不受尊重,真的非常抱歉 Orz
05/20 23:55, 9F

05/21 00:00, , 10F
不會XD
05/21 00:00, 10F
文章代碼(AID): #1HcWHAt4 (Grad-ProbAsk)