🌀 고정 소수점 && 부동 소수점
→ 컴퓨터에서 실수를 표현하는 방법으로 소수점 아래 숫자가 있는 실수들을 표기하는 방식의 명칭이다.
1. 고정 소수점 (Fixed Point)
소수점이 찍힐 위치를 미리 정해놓고(고정) 소수를 표현하는 방식 (정수 + 소수)
➿ 움직이지 않고 고정된 소수점을 의미한다.
ex) 123.456
부호 비트(1) + 정수부(15) + 소수부(16)로 구성되어있다.
정수부와 소수부의 경계 부분을 소수점의 위치로 생각하고 수를 그대로 넣으면 된다. 숫자들을 넣고 남은 칸은 모두 0으로 채워진다.
68.625를 고정소수점으로 바꿔보자.
1. 10진수 68.625을 2진수로 변환한다.
//정수부는 이진수로 변환하고 소수부는 따로 떼서 2를 곱하면서 1로 떨어지거나 똑같은 소수점이 나올때까지 반복한다.
68.625 -> 1000100.101
부호비트 0
정수부 1000100
소수부 101
장점: 정수부와 소수부로 표현해 단순하다.
단점: 표현의 범위가 너무 적어 활용하기 어렵다 (정수부-15bit, 소수부-16bit)
2. 부동 소수점 (Floating Point)
실수: 가수부 + 지수부 (가수: 실수의 실제값 표현, 지수: 크기 표현 (가수가 어디쯤에 소수점이 있는지 나타냄)
지수의 값에 따라 소수점이 움직이는 방식을 활용한 실수 표현 방법
➿ 소수점의 위치가 고정되어 있지 않다.
부동소수점은 과학적 표기법에 따라 표현된 것으로 아래의 규칙을 따른다.
R = ± m * 10^n
2진수를 다룰 때에도 아래의 규칙을 따른다. IEEE 754 표현에 따라 m은 1.xxxx의 형태를 가진다.
R = ± m * 2^n
68.625를 2진수 부동소수점으로 바꿔보자.
1. 10진수 68.625을 2진수로 변환한다.
68.625 -> 1000100.101
2. R, m, n 정리
R = 1000100.101
m = 1.000100101
n = 6
3. 결과
1000100.101 = 1.000100101 * 2^6
지수부는 n에 bias를 더한 값을 2진수로 변환한 수를 넣는다 (bias: 32bit-127, 64bit-1023)
n = 6, bias = 32bit
6 + 127 = 133
//2진수 133
10000101
가수부는 가수를 넣는 부분으로, m의 소수점 아래 부분을 의미한다.
m = 1.000100101
//소수점 아래 부분
000100101
장점: 표현할 수 있는 수의 범위가 넓어진다. (대부분의 시스템에서 사용)
- 고정 소수점의 경우, 정수 부분이 8비트가 넘어가면 다룰 수 없다. 그러나 부동 소수점은 정규화 가능
단점: 오차 발생할 수 있음 (표현 방법이 매우 다양)
💡공부 및 기록용 블로그이므로 오류가 있을 수 있습니다.💡
만약 문제에 오류나 오타가 있다면 댓글로 알려주세요➿
언제나 환영합니다. 감사합니다. 화이팅!
참고: https://jiminish.tistory.com/81
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
패리티 비트 & 해밍 코드 (0) | 2022.02.09 |
---|---|
캐시 메모리(Cache Memory) (0) | 2022.01.13 |
컴퓨터 구성 (1) | 2022.01.13 |
CPU 작동 원리 (0) | 2022.01.13 |