2. JAVA 데이터 타입
by mini_min◾ byte : -128~127까지 저장
byte a, b = 10; a = -15; System.out.println(a+","+b);
◾ a가 130일 때, byte 로 표현하지 못하면, 강제로 형변환하여 표현할 수 있다.
이때, 값이 넘쳐서 형변환이 되면 원래 값이 얼마인지 모르게 된다.
a = (byte)130; // 강제로 형변환 // 부호 자리는 1(음수) 값이 넘쳐서 형변환되면 원래 값이 얼마인지 모르게 됨. // 오버플로어 주의! System.out.println(a); // -126이라고 나옴
byte a, b; a = (byte)129; // 오버플로우가 발생하여 -127이 저장 b = (byte)385; // 오버플로우가 발생하여 -127이 저장 System.out.println(a + "," + b); System.out.println(a == b); // a랑 b랑 같냐고 물어보는 것
◾ short 와 int
아스키코드는 미국에서 표준화한 정보교환용 7비트 부호체계로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 이루어진다.
short s1, s2 = 100; s1 = 'A'; // 65. 문자는 ASCII 코드값이 저장되므로 가능 System.out.println(s1+","+s2); int i1, i2, i3; i1 = 200; i2 = 'a'; // 'a' : 문자 'a'의 ASCII 코드 값은 97 i3 = '1' + '3'; // '1': 문자 '1'의 ASCII 코드 값은 49 // 49 + 51 System.out.println(i1+","+i2+","+i3);
◾ 큰 자료형의 값을 적은 자료형에 대입할 수 없다.
ex) int 값을 short 값에 넣을 수 없다. 대신, (short)를 붙여서 강제로 형변환하면 가능하다.
= 값 짤림 현상이 발생할 수 있다.
💥 적은 자료형은 큰 자료형에 대입하는 것은 가능하다.
short a, b = 100; int x = 100; //4byte // a = x; // 컴파일 오류. int > short 자료 타입이 안맞아서 가져올 수 없다. // 큰 자료형의 값을 적은 자료형에 대입할 수 없다. a = (short)x; // int를 short 로 강제로 형변환 // 잘림 현상 발생할 수 있다. // 형변환 과정에서 표현범위를 초과하면 잘림 System.out.println(a+","+b+","+x);
long n; // 8byte n = x; // int을 long에 대입. 가능! 적은 자료형을 큰 자료형에 대입 가능. System.out.println(n); // n= 2200000000; //22억은 int형이 아니므로 컴파일 오류 발생. n = 220000000L; // long 형의 리터널 System.out.println(n);
◾ float 은 단정도형이고 double 은 배정도형이다.
float 은 정밀도가 낮아서 정밀도를 요구하는 경우에는 double 을 사용한다.
float f; // 단정도형 f = 10; // int 리터널을 float 자료형에 대입한 것이다. System.out.println(f); // 10.0 // f = 0.5; // 컴파일 오류. // 0.5 : 배정도형 리터널로 float 에 대입 불가하다. f = 0.5f; // 단정도형 리터널. System.out.println(f); f = 1.2e04f; // 1.2 * 10의 4 System.out.println(f); f = 'A'; // 문자는 ASCII 코드값으로 저장된다. 작은 자료값은 큰 자료값에 넣을 수 있기 때문에 출력 가능. System.out.println(f); double d; // 배정도형 d = 0.5; System.out.println(d); // 그대로 들어갑니다. d = 10.5d; System.out.println(d); // f = d; // 안된다. 컴파일 오류. 배정도형이 더 큰데 단정도형인 f에 들어갈 수 없다. f = (float)d; // double에서 float으로 강제 형변환. System.out.println(f);
블로그의 정보
개발자 미니민의 개발로그
mini_min