回覆列表
  • 1 # 使用者8763118269245

    我幫你解決這個問題,作為交換,如果以後有陌生人問你這麼簡單的問題,請幫他耐心解答。

    一. 先從理論上認識一下原碼,補碼,反碼。 (你問這個問題,我就當你有相關知識基本概念,大致講講)

    1. 二進位制有便於類比電路或與非、便於計算機設計、抗干擾性強的好處(我當年的機組書上大概是這個意思)——於是誕生了原碼;

    2.原碼無法解決正負相加等於0的問題(你可以自己找個正負樹原碼加一下)——於是引入了反碼;

    3.原碼,反碼有兩個0(正負0),為了解決這個問題引入了補碼(補碼的0表示是唯一的)

    二. 十進位制化為原碼(我以正負47舉例)

    這就求出了47的8位原碼,當然你也可以直接拼湊出來,我這樣用算的思路是便於你以後寫程式的時候便於設計算法。

    1.原碼 最高位為符號位:

    +47的16位原碼:0000 0000 0010 1111 ; -47的16位原碼:1000 0000 0010 1111

    2.反碼 正數和原碼相同。負數在原碼的基礎上除符號位為其餘各位取反:

    +47的16位反碼:0000 0000 0010 1111 ; -47的16位反碼:1111 1111 1101 0000

    3.補碼 正數和原碼、反碼相同。負數在反碼的基礎上最低位加1(二進位制演算法)

    +47的16位補碼:0000 0000 0010 1111 ; -47的16位補碼:1111 1111 1101 0001

    計算方法如下:

    其餘的自己算吧,還有不懂的可以私我,最好自己照著思路推算出其他的。

  • 中秋節和大豐收的關聯?
  • 嬰兒在母體裡被羊水嗆著了要花多少錢醫治?