다음 세 실수에 대해 각각 단정밀도 형식으로 표현하기 위한 변환 과정과 결과 비트 스트림을 나타내시오.
123.625
123.625을 2진법으로 바꾼다.
우선, 123을 2진수로 바꾼다.
123 / 2
61 / 2 .. 1
30 / 2 .. 1
15 / 2 .. 0
7 / 2 .. 1
3 / 2 .. 1
1 …. 1↑(화살표 방향으로 쓰면 된다.)
123 = (1111011)2
그 후에 0.625를 2진수로 바꾼다.
0.625 * 2 = 1.25 // 1
0.25 * 2 = 0.5 // 0
0.5 * 2 = 1 // 1
0.625 = (101)2
1111011.101의 값이 소수점 왼쪽으로 1의 값만 남도록 이동 시켜준다.
1. ←1←1←1←0←1←1.101
1.111011101x2^6 => 111011101부분은 가수(Mantissa)이고, 2^6의 6은 지수(exp)이다.
가수(Mantissa)부분은 11011101의 뒤에 나머지 16비트를 0으로 채워 준다.
11011101000000000000000 해당 23비트는 가수(Mantissa)부분이다.
지수(exp)부분은 2^6이었던 지수부분 ^6의 6과 Bias 127을 더한다.
127 + 6 = 133
133을 2진수로 바꾼다.
133 / 2 .. 1
66 / 2 .. 0
33 / 2 .. 1
16 / 2 .. 0
8 / 2 .. 0
4 / 2 .. 0
2 / 2 .. 0
1 / 2 .. 1 ↑(화살표 방향으로 쓰면 된다.)
133 = (10000101)2
133을 2진수로 바꾼 값을 지수(exp)부분에 넣는다.
그 뒤에 가수(Mantissa) 부분을 넣어준다.
X 10000101 11101110100000000000000
비트 부분은 123.625 양수 이므로 부호 비트는 0이다.
최종적으로 부호비트(1비트), 지수(8비트), 가수(23비트)이다.
0 10000101 11101110100000000000000
0.0625
0.0625를 2진수로 변환한다.
0.0625 * 2 = 0.1250 //0
0.1205 * 2 = 0.2500 //0
0.2500 * 2 = 0.5000 //0
0.5000 * 2 = 1.0000 //1
0.0001 값이 소수점 오른쪽으로 1의 값만 남도록 이동 시켜준다.
0.0→0→0→0.1x2^-4가 된다.
1.0 x2^-4 => 0 부분은 가수(Mantissa)이고, 2^-4의 -4는 지수(exp)이다.
가수(Mantissa)부분은 23비트 전부 0으로 채워준다.
00000000000000000000000 해당 23비트는 가수(Mantissa)부분이다.
지수(exp)부분은 2^-4이었던 지수부분 ^-4의 -4와 Bias 127을 뺀다.
127 – 4 = 123
123을 2진수로 변환한다.
123 / 2 .. 1
61 / 2 … 1
30 / 2 … 0
15 /2 … 1
7 / 2 … 1
3 / 2 … 1 … 1 ↑(화살표 방향으로 쓰면 된다.)
123 = (01111011)2
123을 2진수로 바꾼 값을 지수(exp)부분에 넣는다.
그 뒤에 가수(Mantissa) 부분을 넣어준다.
X 01111011 00000000000000000000000
비트 부분은 0.0625 양수 이므로 부호 비트는 0이다.
최종적으로 부호비트(1비트), 지수(8비트), 가수(23비트)이다.
0 01111011 00000000000000000000000
-3.5
먼저 3을 2진수로 변환한다.
3 / 2 … 1 ….1↑ (화살표 방향으로 쓰면 된다.)
3 = (11)2
그 후에 0.5를 2진수로 변환한다.
0.5 x 2 = 1.0
0.5 = (1)2
11.1의 값이 소수점 왼쪽으로 1의 값만 남도록 이동 시켜준다.
1.11
1.11x2^6 => 11부분은 가수(Mantissa)이고, 2^1의 1은 지수(exp)이다.
가수(Mantissa)부분은 11의 뒤에 나머지 16비트를 0으로 채워 준다.
11000000000000000000000 해당 23비트는 가수(Mantissa)부분이다.
지수(exp)부분은 2^1이었던 지수부분 ^1의 1과 Bias 127을 더한다.
127 + 1 = 128
128을 2진수로 바꾼다.
128 / 2 .. 0
64 / 2 ..0
32 / 2 ..0
16 / 2 ..0
8 / 2 ..0
4 / 2 ..0
2 / 2 ..0 … 1 ↑(화살표 방향으로 쓰면 된다.)
128 = (10000000)2
128을 2진수로 바꾼 값을 지수(exp)부분에 넣는다.
그 뒤에 가수(Mantissa) 부분을 넣어준다.
X 10000000 11000000000000000000000
비트 부분은 -3.5 음수 이므로 부호 비트는 1이다.
최종적으로 부호비트(1비트), 지수(8비트), 가수(23비트)이다.
1 10000000 11000000000000000000000
'학교 공부 정리 > ICT 융합공학개론' 카테고리의 다른 글
0319 (0) | 2019.03.19 |
---|