3.    실수
3.0   실수
3.625 실수 -> 메모리상 저장 2진수 0/1
3->11

 

실수형 이진법

 

3.625 이진법 변환

 

 

정수부분 3->11

 

소수부분 

0.625 * 2 = [1].25
 0.25  * 2 = [0].5
 0.5   * 2 = [1].0
종료

 

3.625->   11.101

 

 

 

float / double

 

   float 4     / double 8                                         크기가 2배 차이이므로

   32비트       64비트                                           배정도 정밀도를 보인다.     -부동소수점표기
  
float 1(S)   8(E 지수)  23(M 가수)
double    1(S)  11(E 지수)  52(M 가수)
예) 10진수 예 - 지수/가수
1234.5678 ----->1.2345678 * 10^3
  1.2345678E3                  여기서 3이 지수(10의 몇승인지)     1.2345678이 가수 이다.

 

 

float 와 double은 오차가 있는 자료형이다.

 

예를들어 우리눈에는 3.14 일 수도 있지만
이걸 float 형 또는 double형 으로 저장 하는 순간 소수를 이진법으로 바뀌면서 무한소수가 나올수도 있다.

그래서 오차가 계속 발생하는거다.
컴퓨터가 수를 저장하는 내부적으로 처리 방법을 알고 있어야 어떤 부분에서 오차가 나오는지 이해가능하다.

 

 

접미사 D,F ,L


접미사 F or f를 붙이면  '4바이트짜리 float형 실수입니다' 라고 표현하는 것이다.

height = 175.3F;              //접미사 F or f

 

접미사 D or d를 붙이면  '8바이트짜리 double형 실수입니다' 라고 표현하는 것이다.

height = 175.3D;              //접미사 D or d

 

65D == 65d == 65.0

 

접미사 L or l를 붙이면  '8바이트짜리 long형 정수입니다' 라고 표현하는 것이다.

height = 175.3L;              //접미사 L or l

 

 

 

0과 0L

 

0L  [ ][ ][ ][ ] [ ][ ][ ][ ]   - - -             long형은 8byte
0                [ ][ ][ ][ ]   - - -               int형은 4byte

 

 같은0이라도 메모리상에 차지하는 크기가 다르므로 0을 구분하여 사용한다.

복사했습니다!