二補數(2’s complement,在中國大陸稱作補碼,台灣和香港稱為二補數)

二補數(2’s complement,在中國大陸稱作補碼,台灣和香港稱為二補數)

二補數(2’s complement,在中國大陸稱作補碼,台灣和香港稱為二補數)

 

資料來源:https://zh.wikipedia.org/wiki/%E4%BA%8C%E8%A3%9C%E6%95%B8

 

是一種用二進位表示有號數的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。

 

一個數字的二補數就是將該數字作位元反相運算(即一補數),再將結果加1。

 

PS自己再把上面的說明再寫一次:

    一的補數=原本二進位正整數取NOT     [ 一的補數雖然簡單直觀但是0有兩種表示法- (00000000) 和 (11111111) 所以大多用二的補數 ]

    二的補數=一的補數+1

 

EX:
    十進位(127) = 二進位(01111111)
    十進位(-127)=一的補數(10000000)->二的補數(10000001)

 

WINDOWS小算盤驗證

undefinedundefined

2 thoughts on “二補數(2’s complement,在中國大陸稱作補碼,台灣和香港稱為二補數)

  1. https://mp.weixin.qq.com/s?__biz=Mzg3MjA4MTExMw==&mid=2247493568&idx=1&sn=8c445ca35300fde5a4f53685cc564dac&chksm=cef61476f9819d603a9f15690267885e8b96c90747c71f9c8408b4bdfe0d1c515ee0fc3b8847&scene=126&sessionid=1598852391&key=360754e56e033319f0ea802b0425db91ea9577a8bce444eb4e7fb2db3f4b8df52fadef85dc2793f6445bec579e0a326a2196ccdb4cfaf979a7452b2e5e6f0834269dcc2ad7e98dbb172576addeae7021c0ec157d0a1b5cba168430681219ad61b35f21a2764a18cd4f092b1e7d2631d48bb379ab43aba02ccc892ce71cde6c22&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10+x64&version=62090529&lang=zh_TW&exportkey=Am2XGebo9tP%2FNS9lvpzLNYs%3D&pass_ticket=HWH0ihBWA2sCHd8WHMJN93RqHaWxZZ8W9JwPA6FItqxvyh%2BDmBkh5j9TDdMo8G6c

    補碼的表示方法是:正數的補碼就是其本身,負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反,最後+1。(即在反碼的基礎上+1)

    補碼計算的規則:

    ▲補碼運算時,其符號位與數值一起參加運算。

    ▲補碼的符號位相加後,如果有進位出現,則進位被捨棄。

    ▲用反碼運算,其運算結果亦為補碼。在轉換成原碼時,如果是正數,其補碼就是原碼;如果是負數,該補碼的補碼就是其原碼。

    EX:
    10-2=10+(-2)
    10 -> 0 1010(2進位)
    -2 -> 1 0010(2進位) -> 1 1101(1的補數) -> 1 1110(2的補數)

    10-2=10+(-2) [補數運算]
    0 1010
    1 1110
    ————
    1 0 1000
    X

    1. 2-10=2+(-10)

      2 -> 0 0010
      -10 -> 1 1010 ->1 0101(1的補數~ 正負號不變,其他相反) -> 1 0110(2的補數~ 1的補數+1)

      0 0010
      1 0110
      ———-
      1 1000 => -8

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *