摘要:byte tt=(byte)130 等于 -126 。 byte 占一個(gè)字節(jié),8bit 。第一位是符號(hào)位,0 表示正數(shù),1 表示負(fù)數(shù)。因此byte 的取值范圍 [-128, 127] 。130的二進(jìn)制是00000000000000000000000010000010,截取成byte類型只保留后8位,也就是10000010,第1位是符號(hào)位0代表正數(shù)、1代表負(fù)數(shù),這里第一位是1也就是負(fù)數(shù),
byte tt=(byte)130 等于 -126 。 byte 占一個(gè)字節(jié),8bit 。第一位是符號(hào)位,0 表示正數(shù),1 表示負(fù)數(shù)。因此byte 的取值范圍 [-128, 127] 。
130的二進(jìn)制是00000000000000000000000010000010,截取成byte類型只保留后8位,也就是10000010,第1位是符號(hào)位0代表正數(shù)、1代表負(fù)數(shù),這里第一位是1也就是負(fù)數(shù),計(jì)算機(jī)存儲(chǔ)的負(fù)數(shù)是補(bǔ)碼,必須將其他位取反再加1,取反加1后這個(gè)為-1111110,這個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為整數(shù)是-126 。
byte a= (byte) 0x00000111; 十六進(jìn)制 16*16 + 16 + 1 = 256 + 17 = 0000001 00010001 。截取后8位,則 a = 17 。
byte c = (byte)0xFF; 十六進(jìn)制 15*16 + 15 = 255 = 11111111 , 最前面1表示負(fù)數(shù), 存儲(chǔ)的是 補(bǔ)碼,后面7位取反 加 1 等于 1 , 則 c = -1 。 System.out.println(c); 輸入 -1 。
八進(jìn)制必須以 0 開頭, 十進(jìn)制不能以0開頭(0除外)。
byte a= 00000111; 八進(jìn)制 64 + 8 + 1 , 則 a = 73 。
byte a= (byte)00001111; 八進(jìn)制 8*8*8 + 64 + 8 + 1 = 00000010 01001001 , 轉(zhuǎn)換成byte,取后8位,則 a = 73 。 byte a= 00001111 ,會(huì)報(bào)錯(cuò)超出范圍[-128,127] 。
byte占 8位。 short 占 16位,取值范圍 [-32768, 32767]
int類型在內(nèi)存中占32位,4個(gè)字節(jié)。取值范圍 [-2147483648, 2147483647]。
2^31 = 2147483648
long型如果賦值超出int型的范圍,則需要在數(shù)字后加上L或l 。表示該值是長整型。
long n = 2147483650L + 4; 則 n 值是 2147483654 。
long m = (long)(2147483647 + 4); 計(jì)算過程:2147483647 存儲(chǔ)是: 01111111 11111111 11111111 11111111 加上 00000000 00000000 00000000 00000100 等于 10000000 00000000 00000000 00000011 。
前面的1 表示負(fù)數(shù)。負(fù)數(shù)存儲(chǔ)的是補(bǔ)碼,將其他位取反加 1 。 則是 11111111 11111111 11111111 11111101 。 則 m 等于 -2147483645