이번에는 자료형에 대해서 알아보겠다.

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

+ Recent posts