1.計算機編碼
1.1 原碼、反碼和補碼
在計算機內,定點數有3種表示法:原碼、反碼和補碼。
原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
反碼:表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
原碼、反碼不能直接進行數值計算。
1.2 計算機數值存儲
在計算機中,數值均已補碼形式存儲。
2.計算步驟
僅以byte為例進行闡述,byte為一字節8位,最高位是符號位。
最大值是01111111(補碼),補碼即原碼:
最大值為:2^0+2^1+2^2+2^3+2^4+2^5+2^6=(1-2)2^7/(1-2)=2^7-1=127
最小值是10000000(補碼),首先計算反碼(補碼-1):
01111111
然后計算原碼:
10000000
最大值為:-2^7=-128
3.等比數列
首項是a1,公比是q(q≠1),則Sn=a1(1-q^n)/(1-q);
4.byte無符號表示
byte a = (byte)234;
打印出來的結果為-22,看看原因:首先byte范圍-128~127,打印出其他值也屬正常。
234的二進制位:
11101010
計算機會把它當成負數,首先計算其反碼:
11101001
然后計算其原碼:
10010110
原碼為-22
