컴퓨터론 숫자표현을 어떻게 할수있을까요?
바로 두가지 방법으로 표현할 수 있답니다.
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 |