Computers/(한빛) 컴퓨터개론

ch2. 수 체계와 데이터 표현

emzei 2010. 8. 8. 11:11

1. 8진수 32.54와 16진수 1A.4를 10진수로 변환하여라

8진수 32.54 => 3*8^1 + 2*8^0 + 5*8^(-1) + 4*8^(-2) = 26.6875

16진수 1A.4 => 1*16^1 + A*16^0 + 4*16^(-1) = 26.25

2. 10진수 37.6875를 16진수로 변환하여라

37/16 = 2 … mod 5 =>25 (16진수)

0.6875 * 16 = 11 => 0.B (16진수)

따라서, 25.B (16진수)

3. 8진수 32.54를 2진수와 16진수로 변환하여라

8진수 한자리는 2진수 세자리를 묶은 것과 같다.

  3  2 . 5  4 (8진수)

= 011 010 . 101 100 ( 2진수 ) -> 즉, 11010 . 1011 (2진수)

 

2진수 네자리를 묶은 것은 16진수 한자리와 같다.

  1 1010  .  1011 (2진수)

=>  1  A  .  B (16진수)  -> 즉, 1A . B (16진수)

4. "Korea"를 ASCII코드로 나타내어라

( 기존의 아스키코드는 7비트로 표현이 가능했으나, 기존에 표현할 수 있는 문자들 외에 추가적인 문자를 지원해야할 필요성이 있어서 1비트를 추가하여 8비트를 사용한 코드가 정의되었는데, 이런 코드를 확장 아스키코드라하고 기존의 7비트 아스키코드에는 가장 왼쪽에 0을 추가하여 8비트 형식이 되게했다. 참고로 다음의 답은 기존의 7비트형식으로 작성했다. )

K : 1001011

o : 1101111

r : 1110010

e : 1100101

a : 1100001

5. "Korea"를 유니코드로 나타내어라.

K : 004B

o : 006F

r : 0072

e : 0065

a : 0061

6. "글"을 유니코드로 나타내어라.

AE00

(한글에 대한 유니코드는 http://www.unicode.org/charts/PDF/UAC00.pdf 를 통해 볼 수 있다.)

7. 텍스트 "ABCAABCAB"를 허프만코드로 변환하여라.



 A : 1 , B : 00 , C : 01

=> A B C A A B C A B

= > 1 00 01 1 1 00 01 1 00

= > 10001110001100

8. -57을 2의 보수 표기법으로 나타내어라.

10진수를 2진수로 표현 - > 1의 보수로 표현(토글) ->  1을 더한다.

57의 2진수 표현 : 00111001 (2) // 8비트로 표현

1의 보수로 표현 ( 토글 ) : 11000110 (2)

1을 더함 : 11000110 + 00000001 = 11000111 (2)

9. 32비트의 2의 보수 표기법으로 나타낼 수 있는 최댓값과 최솟값은 무엇인가?

최댓값 : 2^31 - 1

최솟값 : -2^31

10. 8 + 11, 8 + (-11) , (-8) + 11 , (-8) + ( -11)을 2의 보수 표기법으로 변환하여 연산하여라.

8비트로 표현 후 연산

<10진수>  <2진수>

   8 : 00001000

     11  : 00001011

  -8   :   11111000

 -11  : 11110101

 

  8   +   11   : 00010011

  8   + (-11) : 11111101

(-8) +   11   : 00000011 ( 최상위 비트를 넘어가는 자리올림수 1은 무시 )

(-8) + (-11) : 11101101

11. 110.1*2^7 을 IEEE754 단일 정밀도 형식으로 나타내어라.

가수의 부호 : + => 0

정규화 => 110.1 * 2^7 = 1.101 * 2^ 9

바이어스 된 지수 => 9 + 127 = 136 => 2진수 1001000

        ※IEEE754 표준에서 바이오스는 754

가수는 23비트에 표현하면 되는데 소수점 아래부분만 표현하면됨

가수 => 10100000000000000000000

∴0 1001000 10100000000000000000000

12. 15.75를 IEEE754 단일 정밀도 형식으로 나타내어라.

우선 10진수를 2진수로 표현

#15 => 1111   #0.75 => 0.11

=>1111.11 * 2^0 

정규화 => 1.11111 * 2^3

바이어스 된 지수 => 3 + 127 = 130 => 2진수 10000010

가수 => 11111000000000000000000

∴ 0 10000010 1111100000000000000000

13. 컴퓨터에서 17.25 + 5.125 를 연산하는 과정을 나타내어라.

step 1. 피연산자가 0인지 조사한다.

 

(0이 아니면)

step 2. 지수가 같도록 조절한다.

17.25 -> 2진수 : 10001.01 * 2^0  => 1.000101 * 2^4

5.125 -> 2진수 : 101.001 * 2^0  => 0.0101001 * 2^4

step 3. 가수의 덧셈을 한다.

 1.000101

+0.0101001

──────

  1.0110011

step 4. 결과를 정규화시킨다.

1.0110011 * 2^4

IEEE 754형식으로 표현 => 0 10000011 01100110000000000000000

 


'Computers > (한빛) 컴퓨터개론' 카테고리의 다른 글

ch6. 프로그래밍 언어  (0) 2010.12.28
ch5. 운영체제  (0) 2010.12.28
ch4. 컴퓨터 구조  (0) 2010.09.26
ch3. 부울대수와 논리회로  (0) 2010.08.08
ch1. 서론  (0) 2010.07.25