Dev/Java

자료형(data type)

OK-가자 2022. 3. 2. 17:51

06. 자료형(data type) - 정수는 어떻게 표현하나요?

변수와 메모리

변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
변수는 할당된 메모리를 가리키는 이름

int level = 10; // 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨

기본 자료형(primitive data type)의 종류

정수 자료형의 종류와 크기

byte와 short

  • byte : 1바이트 단위의 자료형

       동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용
  • short: 2바이트 단위의 자료형

       C/C++ 언어와 호환 시 사용

int

  • 자바에서 사용하는 정수에 대한 기본 자료 형

  • 4바이트 단위의 자료형 = 리터럴도 4바이트

  • 프로그램에서 사용하는 모든 숫자(리터럴)은 int 로 저장됨

  • 32 비트를 초과하는 숫자는 long 자료형으로 처리

long

  • 8바이트 자료형

  • 숫자의 뒤에 알파벳 L 또는 l 을 써서 long 형임을 표시 함

  • 예) int num = 12345678900; // 오류

    long lnum = 12345678900; //오류 <br>
    long lnumber = 12345678900L; // ok

07. 자료형(data type) - 실수는 어떻게 표현하나요?

- 부동 소수점 방식

  • 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야 함

  • 부동 소수점 방식으로 실수 값 0.1 표현

  • 지수부와 가수부로 표현 함

  • 컴퓨터에서는 밑수를 2로 사용

  • 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것

  • 컴퓨터에서는 밑수가 2 이므로 정규화를 하게 되면 가수부분의 첫 번째 자리 숫자는 항상 1임

    예) 0.2 표현 0.4 X 2-1 정규화 하면 1.6 X 2-3

- float형과 double형


자바에서는 실수의 기본 타입은 dobule을 사용 함

- float 와 double 예제

   package ch07;

   public class DoubleTest {

       public static void main(String[] args) {
           double dnum = 3.14;
           float fnum = 3.14F;

           System.out.println(dnum);
           System.out.println(fnum);
       }
   }

- 부동 소수점 방식의 오류

지수와 가수로 나타내는 부동 소수점 방식에서는 지수부가 0을 표현할 수 없기 때문에 약간의 오차가 발생할 수 있다

   public class DoubleTest2 {

    public static void main(String[] args) {

        double dnum = 1;

        for(int i = 0; i<10000; i++) {
            dnum = dnum + 0.1;
        }
        System.out.println(dnum);
    }
}

출력 결과