Re: 請問一個位元運算問題

看板Programming作者時間13年前 (2010/12/02 12:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/13 (看更多)
※ 引述《LPH66.bbs@ptt.cc (-858993460)》之銘言: > 現代電腦用的是二的補數 而不是 signed-magnitude > 所以其實是這樣的: > ~y = 1110 (-2) > -z = 1101 (-3) > ~y & -z = 1100 (-4) > x ^ 1100 = 1111 (-1) > 你這裡只是碰巧答案對而已 > 至於判斷二補數的負數是幾 > 利用 ~x == -x-1 這個關係 (這是二補數的定義, 加起來是 2^n-1) > 也就是 -x == (~x)+1 > 因此 -z 就是從 0011 =(變補)=> 1100 =(加1)=> 1101 這個就是 -3 了 > 所以 1100 用一樣的方法 1100 =(變補)=> 0011 =(加1)=> 0100 是 4 > 於是 1100 就是 -4 感謝LPH大精闢的解說 所以重點是2's補數而非符號表示法 了解 感恩 那因為C語言整數是2 bytes 所以前面是不是都要補12個位元?(如果是計算題的話) 如果是的話,就不用再回覆我了 謝謝解惑 -- ┌─────KKCITY─────┐ KKCITY 市民小常識 bbs.kkcity.com.tw Q:文章標題前有#符號是代表什麼意思? └──From:61.231.68.13 ──┘ A:被作者加密了,需輸入密碼才能閱讀 --
文章代碼(AID): #1Cznd-Jn (Programming)
討論串 (同標題文章)
文章代碼(AID): #1Cznd-Jn (Programming)