1. 程式人生 > >JAVA byte最大值是127,最小值確實-128

JAVA byte最大值是127,最小值確實-128

原碼、反碼和補碼

在計算機內,定點數有3種表示法:原碼、反碼和補碼
原碼:就是二進位制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
反碼:表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

JAVA中的正數、負數

JAVA中用補碼錶示二進位制數,補碼的最高位是符號位,最高位為“0”表示正數,最高位為“1”表示負數。
正數的補碼是其本身,負數的補碼是其絕對值(即正數)取反加1。這裡是各位取反,包括了符號位,注意與反碼的區別

等比數列求和公式

首項是a1,公比是q(q≠1),則Sn=a1(1-q^n)/(1-q);
例如:2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7,這裡a1=1,q=2,所以Sn=1-2^7/-1=-1*(1-2^7)=2^7-1=127

計算步驟

1、byte為一位元組8位,最高位是符號位,即最大值是01111111,因正數的補碼是其本身,即最大值的補碼是01111111,最大值的原碼也是01111111,所以,此正數為01111111即用十進位制表示形式為127
2、最小值是10000000,由於是補碼需要轉換成原碼,因此先減去1即01111111,然後取反10000000,這就是原碼,原碼就是10000000,這就是最小值的絕對值,即2^7=128,那麼,最小值就是-128