作者 主題: 補數運算的問題?  (閱讀 11783 次)

0 會員 與 1 訪客 正在閱讀本文。

fell0206

  • 活潑的大學生
  • ***
  • 文章數: 339
    • 檢視個人資料
補數運算的問題?
« 於: 2008-07-24 12:55 »
各位大大,小弟在書看到有一題是求2進位的1補數,"0.011的1補數=0.100",可是...我算了很久一直都是1.100,請各位大大指點一下!! thank you!

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 補數運算的問題?
« 回覆 #1 於: 2008-07-24 13:11 »
1 的補數,

加起來是 1 就好,不是嗎? (在記憶的深處我有這個印象...)
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

fell0206

  • 活潑的大學生
  • ***
  • 文章數: 339
    • 檢視個人資料
回覆: 補數運算的問題?
« 回覆 #2 於: 2008-07-24 13:35 »
感謝大大的指點!!
所以大大的意思是...我自己算的是對?
0.011+1.100=1.111
請大大在指點指點~ Thank you!

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

fell0206

  • 活潑的大學生
  • ***
  • 文章數: 339
    • 檢視個人資料
回覆: 補數運算的問題?
« 回覆 #4 於: 2008-07-24 14:28 »
感謝大大的指點!!
看來小弟算的才是對的!!書印錯了!!
Thank you~~

RonLee

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
回覆: 補數運算的問題?
« 回覆 #5 於: 2009-01-07 08:48 »
這主題雖然已過了幾個月,最近在學補數,剛好路過看到。
我覺得你的答案應該是錯的,書上的答案才是對的。
在2進位下,某數的1補數,用1減去各數值即可得之。
你問的0.011,要求其1補數,應該是用0.111去減,
  0.111
 -0.011
-------
 0.100 <--正解

因為小數點前已沒有整數,不需在小數點之前多用一個1去減。

補數的作用在於使減法運算可以用加法來完成。
實際應用一下,隨便選定一個數,例如0.110,去減你那個數,算算看結果會如何。
0.110-0.011     <===== 此解為0.011
=0.110+(0.011的補數)

用書上的答案去算,上式為:
=0.110+0.100
=1.010
去掉進左邊的1,然後最小位再進1,得0.011,符合結果。

用你的答案去算,上式為:
=0.110+1.100
=10.010
這時進了兩個位數。雖然說去掉最左邊的1,然後最小位進1,也是可以得到答案0.011,
但是連進兩個位數似乎不太符合補數運算的規則。

所以,書上的答案應是正確的。

請參考小弟的心得「以十進制理解補數的作用」
http://www.wretch.cc/blog/ronlee543/11904225


« 上次編輯: 2009-01-09 03:55 由 RonLee »