32位和64位的區(qū)別
區(qū)別在于一次存取數(shù)據(jù)的位數(shù)盒卸。
c/c++ 數(shù)據(jù)類(lèi)型區(qū)分32和64,但java不區(qū)分辨嗽,因?yàn)镴VM具有跨平臺(tái)性世落,為看達(dá)到跨平臺(tái)通信。
基本數(shù)據(jù)類(lèi)型字節(jié)數(shù)
char:一個(gè)字節(jié)(java中2個(gè)字節(jié))糟需。
short int:2字節(jié)屉佳。
int:32位系統(tǒng):4字節(jié);64位大多是4字節(jié)(少數(shù)8字節(jié))洲押。
指針:32位:4字節(jié)武花;64位:8字節(jié)。
float:4字節(jié)杈帐。
double:8字節(jié)体箕。
long:8字節(jié)专钉。
基本數(shù)據(jù)類(lèi)型取值范圍
有符號(hào)的:-2^(字節(jié)數(shù)*8-1)~2^(字節(jié)數(shù)*8-1)-1
無(wú)符號(hào)的:0-2^(字節(jié)數(shù)*8-1)-1
例如:int取值范圍:-2^31~2^31-1
取值范圍的解釋
無(wú)符號(hào)的:即非負(fù)數(shù)
以int為例:最小值0,最大值的二進(jìn)制為01111111 24個(gè)1累铅,即2^31-1
有符號(hào)的:
以int為例:最大值和有符號(hào)一致跃须,最小值為正數(shù)的二進(jìn)制取反,即10000000 24個(gè)0娃兽,即-2^31菇民。
關(guān)于補(bǔ)碼
正數(shù)的補(bǔ)碼是本身,負(fù)數(shù)的補(bǔ)碼是其絕對(duì)值的二進(jìn)制取反+1投储,0的補(bǔ)碼是000000第练。
例如int,5是0101玛荞,-5就是1010+1=1011娇掏。
反推:0101+1011=(最高位1被舍棄)0000=0。正確勋眯!