網路城邦
上一篇 回創作列表 下一篇   字體:
補數
2009/06/11 13:53:37 瀏覽1573|回應4|推薦17

10進位的25 = 2進位的11001 → 用16位元表示0000 0000 0001 1001

1's 補數 = 1111 1111 1110 0110

2's 補數 = 1111 1111 1110 0111 = 十進位的-25 以2's 補數法表示

如果十進位的 X 以2's 補數法表示 = 10110110

1's 補數 = 1011 0101 = 10進位的 74

所以2's 補數 = 10110110 為 10進位的 -74

PS:補數不是ABay的專長,以上方法是相當原始的,如有更快的方法請專家指導一下,謝謝!

( 心情隨筆心情日記 )
推薦文章 轉寄 列印 加入我的文摘
上一篇 回創作列表 下一篇  

引用
引用網址:http://blog.udn.com/article/trackback.jsp?uid=Piner&aid=3033066

 回應文章

鳳彩翎:阿9公然侮辱
等級:8
留言加入好友
2'S補數
2009/06/12 20:37
   有號(signed)補數

   最左一位為1=>代表負
   最左一位為0=>代表正

  
   25=>  0001  1001
        最左為0所以為正

   取2'S=> 1110  0110
        +         1
        ___________
         1110  0111= -25
         最左為1所以為負


   -25=>  1110  0111
    
  
   取2'S=>  0001  1000
        +          1
        ___________________________
          0001  1001=25

  
   取 2'S 一次則變號一次

  
   74=>  0100  1010
         最左為0所以為正


   取2'S   1011  0101
           +         1
        ___________
         1011  0110= -74
        最左為1所以為負


   -74 :  1011  0110

  
   取2'S:  0100  1001
         +         1
        ____________
         0100  1010= 74
          最左為0所以為正


ABay(Piner) 於 2009-06-13 17:58 回覆:

清楚!簡單!


鳳彩翎:阿9公然侮辱
等級:8
留言加入好友
呵呵!
2009/06/12 13:10

  我還以為數學專家只會親吻溜...

梅斯普雷爾
等級:7
留言加入好友
google得來
2009/06/12 12:49

1的補數(1‘ Complement) :指兩數的和為1,則此兩數互為1 的補數,即1和0互為1的補數。
例如:

原數為101101
1補數為010010
即將原數的0變1,1變0

2的補數(2’ Complement):指二兩數的和使每一位均為0而產生溢位(進位)。

求法:先取該數的1補數,再加1即可
例如:求01101的2‘補數為何?

原數為01101
1補數為10010
1的補數再加1 10011

資料來源:http://web2.tcssh.tc.edu.tw/teacher/cjwu/class/complement.htm


數學總有規則可循、愛情毫無道理可言。
ABay(Piner) 於 2009-06-13 17:58 回覆:
恩恩  這跟我的是一樣的

鳳彩翎:阿9公然侮辱
等級:8
留言加入好友
報告版主...
2009/06/11 16:04
  簡單的啦...

  偶企請資訊大師來嘿...