오래 못 할 짓 하지 않기
[ 컴퓨터 구조 ] 12. Floating Point number 본문
Floating Point Number 로 표현할 수 있는 수
- 소수/분수
- 매우 작은 숫자 ex) 0.000001
- 매우 큰 숫자 ex) 3.15 * 10^8
구현법
1) Scientific notation
: 숫자가 소수점으로 있고 Base number(decimal point)와 함께 있음
* 왼쪽에는 1의 자리 이하여야 함. = 소수점 이전에 숫자 하나만 가능
ex) 13.775(X) / 1.345(O) / 0.345(O)
2) Nomalized scientific notation
: 소수점 이전 숫자가 1 부터 9까지 가능
* 위에서 0.xx이거만 안 된다 생각하면 됨 1 이상이어야 함
ex) 13.775(X) / 1.345(O) / 0.345(X)
+ 2진수같은 경우에는 0이나 1밖에 없는데 노멀라이즈드면 무조건 1.xx에다가 * 2^a
이걸 구체적으로 알아보자.
2진수를 Notation으로 나타내기 위해서 알아야 하는 정보는
- 부호 + 숫자 + (해당 진수의)지수 이다.
우리가 숫자를 알기 위해서는 -175= -1.75 * 10^2 이렇게 표현이 되고
아래로 정리할 수 있다.
1) 부호 = -
2) 숫자 = 1.75
3) (10진수)지수 = 2
우리는 IEEE 754 규칙을 따를건데, 구조는 아래와 같다.
이걸 분석해보자면, 숫자는 8비트를 읽는다. 하지만 소수점이 아닌 곳은 무조건 1이므로 소수점부터 읽는다.
--> 정수부분은 어차피 1이니까 신경 x
(이유 : 1<a<10까지만 소수점 위에 있을 수 있다. 하지만 2진수는 0,1인데 a조건에 맞는 건 1밖에 없음)
1) 부호는 가장 앞에 sign bit가 하나 있기 때문에, 문제가 없고,
2) 숫자비트에서는 biased 방법을 사용한다. ( 숫자를 요리조리 잘 해서 -127~128로 맞추기?)
숫자같은 경우에는 부호가 나타날 필요가 없다 (sign bit가 따로 있기 때문에).
따라서, 숫자는 unsigned로 나타내기 위해
주어진 숫자를 8비트로 left shift, 그 숫자에서 -127를 해준 값을 적는다.
3) 그 뒤에 있는 23비트에는 소수점 아래 있는 수들를 적어준다.
교수님 풀이 : 10진수 > 2진수 IEEE 표현식
-0.75를 표현하기
1) 2진수로는 -0.11 임
2) Notation을 맞추려면 -1.1 * 2^-1로 해야함.
3) -1 + baised num = 127 을 더하여 126. 01111110
표현
sign = -
숫자 = 126 = 01111110
소수점 아래 있는 수들 = 1
위와 같이 표현하면
1 01111110 1000000000000000000000
아래 이거만 알면 됨
9.625 > 2진수로 표현하기
처음에 값은 1001.101이었음.
> float point number로 나타내려면 소수점 위로는 하나만 있어야 한다.
> 일단 1001101 -> 7bits를 8bits 칸으로 바꾼다면 10011010이 되고 이는 130이다.
여기에서 127을 뺀다면 3이고, 이는 3칸을 이동해야 부동소수점이 된다는 걸 의미한다.
이 값이 +면 소수점이 왼쪽으로 이동하고, -면 오른쪽으로 이동한다.
그 뒤로는 소수점 이하의 숫자들을 먼저 채워주고 나머지 칸들을 0으로 채워 23비트를 채운다.
1) sign bit 맞추기
2) 일단 주어진 숫자 8비트에 넣기
3) 그 숫자에서 127빼기 > 나온 값만큼 소수점 이동
4) 소수점 아래에 있는 수와 0으로 나머지 비트 채우기
(출처)
한동대학교 용환기 교수님 - 컴퓨터구
(참고)
https://youtu.be/fTQlWKw0HE4?si=OCXsUU3NRoChntEn
https://www.youtube.com/watch?v=ZQDsWySjY6g&t
'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글
[ 컴퓨터 구조 ] 13. Floating Point number 2 (0) | 2023.10.15 |
---|---|
[ 컴퓨터 구조 ] 문제풀기 2 (0) | 2023.10.12 |
[ 컴퓨터 구조 ] 11. DIVISION (0) | 2023.10.08 |
[ 컴퓨터 구조 ] 10. Multiplication (0) | 2023.10.08 |
[ 컴퓨터 구조 ] 문제 풀기 (0) | 2023.10.05 |