http://wenku.baidu.com/link?url=vCS98zuSbS1cRDrvmGc7RdasMmhzUgGCqzHSZzhnVHy-BPO37X_X1ktz3zOoDZ_1D1Tf9FWnHsJQJOZA-LYYgkwskoC_mozWeFDtsxhQPQy
現在想知道,714在計算機中如何表示?在計算機中,正數以原碼的形式表達。
正數的原碼,反碼,補碼,都相同。
現在想知道,-714在計算機中如何表示?在計算機中,負數以原碼的補碼形式表達。
正數有正數的原碼
負數有負數的原碼
取反和反碼不是同一個概念
一個是在計算機中表達,一個是科學計數方式表達。
714 原碼: 0000 0010 1100 1010 02CA
-714的原碼: 1000 0010 1100 1010
負數的反碼:1111 1101 0011 0101(符號位不變)
負數的補碼:1111 1101 0011 0110 FD36
-714計算機儲存式: 1111 1101 0011 0110
下面為:由正數原碼求負數的計算機儲存式。
-714
714 化成16進制 02CA,二進制
0000 0010 1100 1010
取反(不是反碼,正數的反碼是本身)
1111 1101 0011 0101
加1
1111 1101 0011 0110
FD36
負數轉16進制,其正數取反碼+1,即可。
16進制轉成10進制。
如果是正數:
0000 0010 1010 1010, 直接算。 1*2^9 + 1*2^7 + 1*2^5 + 1*2^3 + 1* 2^1
或者 02 CA 2*16^2 + C*16^1 + A
如果是負數:
轉成正數。減1,取反。
第一個已F打頭,表示負號。
先減去1,再取反,換成正數,最后再補上符號
FD35
1111 1101 0101 0101
取反
0000 0010 1010 1010
02CA = 2*16^2+C*16+A*1 = 714
最后取負數,為A: -714。
計算機存儲的二進制,判斷一個數正負:看最高位符號為1還是0,(4個一位)
最高位是有講究的: 還要看數據所占的總字節數,例如1個字節: -128~127
1000 0000, -128,計算機儲存 80
0000 0001, 1, 計算機儲存 01
1000 0001, -1 ,計算機儲存 FF
計算機存儲的16進制,判斷一個正負:
16進制,首位 8以上的數據為負