본문 바로가기

IT/Basic

Fixed Point Precision(고정 소수점) 과 Floating Point Precision(부동 소수점)

컴퓨터론 숫자표현을 어떻게 할수있을까요?

 

바로 두가지 방법으로 표현할 수 있답니다.

 

1. Fixed Point

2. Floating Point

 

 

 

 

가수부(Mantissa)는 1.xxxx 형태로 정규화를 한 뒤 가장 왼쪽에 있는 1을 제거하고 소수점 이하의 자리 값만 표현한다.


  • 예를 들어, 13.5를 32bit 부동소수점 (float)으로 표현해보자. 
    • 13.5 → 1101.12 [진수변환]
    • 1101.12  1.10112 x 23 [정규화]
    • 부호비트는 양수이므로 0,
    • 지수부는 3이므로 127 + 3 = 130, 2진수로 표현하면 100000102,
    • 가수부는 1.1011에서 소수점 이하 자리만 표현하면 1011이 된다. 
    • 최종 값은 0100 0001 0101 1000 0000 0000 00002



Floating Point는 지수부와 가수부 밑수로 나뉘어 집니다. 

 

[  (가수부) X (밑수 ) ^ 지수  ]


예를 들면 0.4는  0.04 x 10 ^1 로 나타낼 수 있습니다.

 

Float는 4바이트 (32bit)

부호 1 bit / 지수 8 bit / 가수 23bit

Double 8바이트(64bit)

부호 1bit / 지수 11 bit / 가수 52bit

를 나타낼 수있어요.

 

참고: e

처음에 비쥬얼스튜디오로 수학 숫자를 나타내다보면 e라는 것을 보실수 있을텐데 e = 10이에요 저도 처음에 뭔지몰랐는데 자연대수는 아니고 10을 편하게 저렇게 표현하나봐요

 

14e2 = 14*10^2 =1400입니다.

 

 

 

 

[프로그래밍 일반] 부동 소수점의 구조

부동 소수점의 표현 방법에 대해서는 IEEE754에서 32bit single-precision과 64bit double-precision 표준을 정하고 있는데 이것이 바로 float와 double의 규격이다. 기본적인 구조는 최상의 비트는 부호를 표시하.

greatzzo.tistory.com

 

 

 

 

이게 안중요한것 같아도 굉장히 중요하답니다. 윈도8이 처음 출시되었을 때였나요? 블루스크린뜨고 난리가 아니었죠...

한 일화를 들어보니 윈도 8 개발자가 32비트 CPU인지 64비트 CPU인지 고려하지 않고 코딩을해서 그렇다고하네요.

한창 32비트에서 64비트로 넘어갈 때라서 그럴만했다고 봅니다.

64비트를 표현한다고 가정하고

Fixed point는 

최상위 비트는 Signed인지 Unsigned인지 구분하고 Signed일경우 -(2^63 - 1 ) ~ 2^63 -1 까지 나타낼수 있습니다.

반면 Unsigend일경우 0~2^64 -1 만큼을 나타낼 수 있겠죠.

소수점은 정해진대로 쓰이기 때문에 한번 고정시켜놓으면 한계가 크답니다.

 

 

 

 

Floating Point Precision (부동 소수점) 과 Fixed-point Precision (고정 소수점)

오늘은 Machine Learning와 관련된 포스트다. Floating Point Precision과 Fixed-point Precision의 차이에 대해 알아보고자 한다. 먼저, Pascal GPU (and CUDA 8)에선 16bit FP (Floating Point)와 8/16bit INT (..

corona-world.tistory.com

 

 

Floating Point / Fixed Point

컴퓨터론 숫자표현을 어떻게 할수있을까요? 바로 두가지 방법으로 표현할 수 있답니다. 1. Fixed Point2....

blog.naver.com

 

'IT > Basic' 카테고리의 다른 글

'undefined reference' with 'not declared'  (0) 2021.08.12
비트연산  (0) 2021.05.12
[Basic] cpu, core, processor 3  (0) 2021.03.29
[Basic] cpu, core, processor 2  (0) 2021.03.18
[Basic] cpu, core, processor 1  (0) 2021.03.18