☑️부동소수점
0.0000000001 또는 1.0 x 10^(-9)
3,155,760,999 또는 3.15576 x 10^9
위 두 수의 표현 방식은 Sicentific-notation(과학적 표기법)이라고 불린다.
이 방식에서 소수점의 왼쪽에는 한 자릿수만 있다.
과학적 표기법으로 표현된 숫자 중에서 맨 앞에 0이 나오지 않는 것을 normalized number(정규화된 수)라고 부른다.
- 1.0 x 10^9 ⇒ 정규화된 과학적 표기법 (O)
- 0.1 x 10^(-8) ⇒ 정규화된 과학적 표기법 (X)
위의 예시는 전부 십진수였는데, 이진수 또한 과학적 표기법으로 작성할 수 있다.
- 1.0 x 2^(-1)
이진수를 정규화된 형태로 표현하기 위해서는 소수점 왼쪽에 0 아닌 숫자가 한 자리만 나타나게 숫자를 자리이동 한 후 자리이동 횟수만큼 증가시키거나 감소시킬 수 있는 기수가 필요하다.
이 조건을 만족시킬 수 있는 기수는 2밖에 없다. 이를 binary point(이진 소수점)이라고 한다.
이런 수를 지원하는 컴퓨터 연산을 floating point(부동 소수점)이라고 한다.
소수 부분의 크기를 증가시키면 표현할 수 있는 수의 정밀도가 높아지고,
지수의 크기를 증가시키면 표현할 수 있는 범위가 늘어난다.

- 부동 소수점 수의 부호 1비트
- 지수는 8비트 지수 필드의 값
- 소수 부분은 23비트이다.
일반적으로 부동 소수점 수는 다음과 같은 형태를 갖는다.

* F는 소수 부분의 값과 관련이 있고, E는 지수 부분의 값과 연관이 있다.

여기서 오버플로우가 발생할 때는 지수가 너무 커서 지수 필드에 들어갈 수 없는 경우이다.
반면, 너무 작아서 표현할 수 없는 경우는 언더플로우라고 한다.
☑️IEEE 754 부동 소수점 표준
유효자리 부분에 더 많은 수를 담기 위해서 IEEE 754 표준은 정규화된 이진수의 가장 앞쪽 1비트를 생략하고 표현
- 32비트 싱글 precision format
⇒ 변수를 선언하고 싶다면 float으로
- 64비트
⇒로 하고 싶다면 double로 변수 선언
☑️Biased notaion (바이어스된 표현법)
여기서 바이어스는 실제 값을 구하기 위해 부호없이 표현된 수에서 빼야 하는 상수를 말한다.

위를 보면 일정한 값을 더한 효과(4를 더한 결과)가 발생하는 것을 볼 수 있다.
이 숫자를 바이어스라고 한다.
💡 지수가 음수가 되면 다시 뒤집어줌
일정한 바이어스를 더해서 나타낸다.
이를 Biased Notation이라고 한다.
32비트 안에 쓸 때는 바이어스를 포함시켜서 32비트 안에 나타내게 된다.
실제 nomarliazed 넘버로 표현할 때는 지수 부분에 바이어스 넘버를 빼준다.
그러면 floating point를 정수처럼 사용할 수 있다.
single precison은 127이다.
double precison은 1023이다. 바이어스를 더해서 옮기고 실제 빼서 그 숫자를 구하면 된다.
왼쪽으로 옮기면 마이너스, 오른쪽으로 옮기면 플러스
'2-2 학기 > Computer Organization' 카테고리의 다른 글
[컴퓨터구조] Lec15 Pipelining (1) | 2023.11.01 |
---|---|
[컴퓨터구조] Lec12 Datapath Design (0) | 2023.10.30 |
[컴퓨터구조] Lec8 Multiplication (0) | 2023.10.30 |
[컴퓨터구조] Lecture 4 Machine Instructions (1) | 2023.09.30 |
[컴퓨터구조] Lecture 3 MIPS Instructions (0) | 2023.09.30 |