我幫你解決這個問題,作為交換,如果以後有陌生人問你這麼簡單的問題,請幫他耐心解答。
一. 先從理論上認識一下原碼,補碼,反碼。 (你問這個問題,我就當你有相關知識基本概念,大致講講)
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
計算方法如下:
其餘的自己算吧,還有不懂的可以私我,最好自己照著思路推算出其他的。
我幫你解決這個問題,作為交換,如果以後有陌生人問你這麼簡單的問題,請幫他耐心解答。
一. 先從理論上認識一下原碼,補碼,反碼。 (你問這個問題,我就當你有相關知識基本概念,大致講講)
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
計算方法如下:
其餘的自己算吧,還有不懂的可以私我,最好自己照著思路推算出其他的。