728x90
반응형
컴퓨터에서 실수를 표현하는 두 가지 방법
- 고정 소수점
- 부동 소수점
고정 소수점 (Fixed Point)
소수점이 찍힐 위치를 고정해두고 소수를 표현한다. ex) -3.2134
부호(1비트) + 정수부(15비트) + 소수부(16비트)
부동 소수점 (Floating Point)
지수값으로 소수점을 움직이는 방식을 활용하여 실수를 표현한다. (소수점 위치 고정 안 함)
부호(1비트) + 지수부(8비트) + 가수부(23비트)
· 가수: 실제값 표현
· 지수: 크기를 표현. 소수점이 어디 찍힐지 나타냄
부동 소수점 변환 과정
- 부호부(sign)
- 부호가 음이면 1, 양이면 0으로 가장 앞자리 부호부 1비트를 채운다.
- 가수부(mantissa)
- 가수의 절댓값을 2진수로 변환한다. (참고)
- 소수점 왼쪽에 1 하나가 남도록 소수점 위치를 옮긴다.
- 기존값과 동일하도록 이동한 만큼 지수를 곱한다.
- 소수점의 오른쪽 숫자들로 가수부 23비트를 채운다.
- 남는 자리는 0으로 채운다.
- 지수부(exponent)
- 지수값에 bias인 127을 더한다. (bias = 2의 8승 - 1)
- 지수에 bias를 더한 값을 2진수로 변환한다.
- 변환된 2진수로 지수부 8비트를 채운다.
※ 10진수 정수 to 2진수
10진수를 2로 나눈 나머지를 기록하고 몫을 다시 2로 나눈다. 이 과정을 몫이 0이 될 때까지 반복한다. 기록한 나머지들을 역순으로 나열한 값이 2진수이다.
※ 10진수 소수 to 2진수
10진수 소수에 2를 곱한 후 정수 부분을 기록하고 소수 부분에 다시 2를 곱한다. 이 과정을 소수 부분이 0이 될 때까지 반복한다. 기록한 정수 부분을 순서대로 나열하면 10진수 소수를 2진수로 변환한 값이 된다.
[reference]
- https://codetorial.net/articles/floating_point.html
- https://gyoogle.dev/blog/computer-science/computer-architecture/%EA%B3%A0%EC%A0%95%20%EC%86%8C%EC%88%98%EC%A0%90%20&%20%EB%B6%80%EB%8F%99%20%EC%86%8C%EC%88%98%EC%A0%90.html
- https://ourcalc.com/2%EC%A7%84%EC%88%98-%EB%B3%80%ED%99%98%EA%B8%B0/
728x90
반응형
'CS > 컴퓨터구조' 카테고리의 다른 글
[Computer Architecture] 캐시 메모리 (Cache Memory) (0) | 2022.03.24 |
---|---|
[Computer Architecture] 패리티 코드 , 해밍 코드 (0) | 2022.01.14 |
[Computer Architecture] 컴퓨터 구성 , 하드웨어 , 중앙처리장치 (CPU) 작동 원리 (0) | 2022.01.11 |
댓글