2014년 8월 31일 일요일

5. Java의 기본(데이터 타입5)

앞에서는 정수형과 실수형 메모리의 형태에 관하여 공부하였는데, 이번에는 이 정수형과 실수형의 계산에 대하여 공부하겠습니다.

Q. 메모리의 사이즈는 같지만 int형 5와 float형 5.0을 컴퓨터 언어에서 아무런 조치 없이 더할 수 있는가??

이것은 기본 데이터 타입의 형변환에 대하여 알면 쉽게 알 수 있습니다.
1. 큰 수와 작은 수를 연산하면 큰 수로 형변환이 됩니다.
2. 덜 정밀한 수와 정밀한 수를 연산하면 정밀한 수로 형변환이 됩니다.
3. 정수와 실수를 연산하면 실수형으로 형변환이 됩니다.
4. 작은 수가 큰 수로 형변환되는 것은 자동입니다.(큰 수가 작은 수를 포함하고 있기 때문)
     -큰 수가 작은 수로 형변환을 할려면 강제로 형변환을 해야하는데 오버플로우가 발생합          니다.
5. 덜 정밀한 수가 정밀한 수로 형변환되는 것은 자동입니다.(덜 정밀한 변수는 데이터 표현     이 작기 때문입니다.)
     -덜 정밀한 변수는 데이터 표현이 작기 때문입니다.

그러므로 자연스럽게 정수형 5는 실수형 5과 더해지면서 실수형으로 형변환이 됩니다.

Q double d = 3*4.5f;
앞의 3은 정수이고 뒤의 4.5는 실수형입니다. 그러므로 3*4.5f의 결과는 float형이 됩니다.
그 다음으로 float형의 결과가 double d에 할당되면서 float형이 double형으로 자동 형변환이 됩니다

조금 더 들어가 정수형과 실수형 데이터 타입에서도 메모리의 비트는 같으나 메모리의 크기가 다른 정수형과 실수형에 대하여 보겠습니다.


  • 정수형

         바이트(byte)       - 1바이트
         문자(char)          - 2바이트
         정수(int)             - 4바이트
         정수(short)         - 2바이트
         큰 정수(long)      - 8바이트

여기서 바이트(byte)는 자바에서만 사용하는 데이터 타입으로 1바이트의 데이터 타입입니다. 일반적으로 char가 1바이트이지만 자베에서는 char형이 유니코드 표현을 위해 2바이트로 바귀게 됩니다. 따라서 1바이트 데이터 타입을 위해서 새롭게 만든 데이터 타입이 바이트(byte)타입입니다.

정수형에서 문자(char)은 문자를 표현하기 위해 쓰이는데 이 문자를 표현하는 방법은 'a','A'로 표현을 하는데 이는 2바이트의 숫자이다. 문자A와 '가 결합이되어 char형은 2바이트 되는 것입니다.

  • 실수형
       덜 정밀한 실수형(float) - 4바이트
       정밀한 실수형(double)  - 8바이트

  • 그 외의 데이터 타입
       불린형(boolean) - 1바이트

지금 까지의 내용은 jabook이라는 사이트의 강좌내용이였습니다. 앞의 내용의 부족한 내용은 다시 채워 넣겠습니다. 지금가지의 내용은 개념를 이해하기 위해 쉬운내용으로 채웠는데 앞으로는 조금 더 상세하게 들어가겠습니다.
  

댓글 없음:

댓글 쓰기