이번에는 자료형에 대해서 알아보겠다.
byte 는 -128에서~127까지 나타내는 자료형이다.
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억 이기 때문임.
따라서 a2 = 2300000000L; 을 붙이면 long 리터널로 표현해야한다.
리터럴은 그 값이 한 번 정의되면 프로그램이 실행되는 도중에 변하지 않는 값을 말함.
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0702_Ex05_DataType (0) | 2021.07.04 |
---|---|
0702_Ex04_Literal (0) | 2021.07.04 |
0702_Ex02_Scanner.java (0) | 2021.07.04 |
0702_Ex01_Scanner.java (0) | 2021.07.03 |
0701_Java print문 (0) | 2021.07.03 |