回覆列表
  • 1 # 使用者9471595215301

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

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

    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

    計算方法如下:

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

  • 2 # 使用者1788346970835

    對於正數和負數,補碼規則不同,所以求原碼方式也有所不同。無符號數與正數的方法相同。

    1 對於最高位為0的有符號數,或無符號數,補碼就是原碼本身。如

    0111 1100 既是補碼,同時也就是原碼。

    2 對於最高位為1的有符號數,其表示的是負數。原碼為按位取反,末位加一。如

    補碼:1100 0111

    按位取反後結果為:0011 1000

    加一後得到: 0011 1001

    於是其原碼就是-0011 1001

  • 中秋節和大豐收的關聯?
  • 機械井為什麼水不會清?