請問一個位元運算問題

看板Programming作者時間14年前 (2010/12/02 04:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/13 (看更多)
最近在看程式的題目 看到有一題C語言 想向各位大大請益 #include <stdio.h> main() { int x = 3, y = 1, z = 3; printf(“%d\n”, x ^ ~y & -z); } (假設運算子優先次序為[~, -]> & > ^。) 我的想法是: ~y = 1110;-z = -3 = 1011 之後~y & -z = 1010 x ^(XOR) 1010 = 0011 ^ 1010 = 1001 = -1 後來用compiler編譯 發現答案沒錯 但發現以下問題 1. compiler編譯~y & -z = -4 但剛剛算出的結果是1010,難道1010 = -4? 1010在這個例子中,應該是-2吧?(最高位代表負號) 以上問題,有請高手解惑 感謝 -- ┌─────KKCITY─────┐  動態歌詞 讓你成為K歌之王! bbs.kkcity.com.tw \^_^ / http://www.kkbox.com.tw └──From:61.231.68.13 ──┘   唱片公司授權,音樂盡情下載 --
文章代碼(AID): #1Czgb-Vu (Programming)
討論串 (同標題文章)
文章代碼(AID): #1Czgb-Vu (Programming)