1byte 는 8비트로 표현하는데 1비트는 부호를 나타내고 나머지 7비트로 숫자를 나타내기 때문에 -128~127를 나타낼 수 있는 것
따라서
b2 = 200; 을 주면 표현 범위를 벗어나기 때문에 표현할 수 없다.
short 타입은 2byte 자료형이다.
문자 A는 65를 나타냄.
c는 아스키 코드값으로 99를 나타낸다.
char는byte와 비교불가함!!
문자는 단 한 개를 말하는 것이고 ''으로 표현함. 문자열은 0문자 이상을 말하고 ""로 나타냄.
int 타입은 4byte자료형이다.
자바는 int형이 연산을 위한 기본 타입이다.
b2 = i1; 컴파일 오류가 발생한다. 큰 자료형(int 4byte)은 작은 자료형(byte 1byte)에 대입이 불가하다.
b2 = (byte)i1; 처럼 int를 byte로 형 변환을 시키면 대입할 수 있다. 하지만 i1의 값은 150이므로 표현값(-128~127)을 넘어가기 때문에 overflow가 발생한다. 즉 150은 1001 0110인데 앞에 1은 부호를 나타내는 것이고 음수를 컴퓨터가 저장할 때는 2의 보수로 저장하기 때문에 1110 1010으로 저장이 되는 것. 그래서 -106가 나옴.
'1' 문자 1을 말하는 것이기 때문에 해당 숫자는 49이고 '3'은 문자 3이기에 51. 따라서 i3은 100이 나온다.
ㅇ'c'는 99.
long은 8byte 자료형이다.
long a1 = 10; 이면 int를 long에 대입하는데 작은 자료형은 큰 자료형에 대입할 수 있음. 자동으로 형 변환이 일어난다.
long a2 = 2300000000; 를 넣으면 컴파일 오류가 생기는데, int형의 범위를 벗어나기 때문이다. int형은 4byte로 32비트로 표현할 수 있는 숫자가 대략 -21억~21억 이기 때문임.