2강. 컴퓨터와 자료 (2)

학습개요

이번 강의에서는 “데이터 표현”이라는 관점에서 컴퓨터 내부에서 데이터를 어떻게 표현하는지에 대해서 살펴본다. 우선 데이터와 정보의 개념적인 차이를 이해하고, 정수와 실수, 그리고 문자 표현과 관련된 다양한 개념과 방법들을 학습한다.

학습목표

  1. 데이터와 정보의 개념적 차이, 그리고 데이터 표현 단위 등을 이해하고 설명할 수 있다.
  2. 다양한 진법 간의 변환을 수행할 수 있다.
  3. 정수와 실수의 표현 방법을 이해하고 설명할 수 있다.
  4. 문자 표현의 개념과 문자 코드의 종류를 이해하고 설명할 수 있다.

연습문제

  1. 주어진 여러 진법의 수 중에서 가장 작은 값을 나타내는 것은?
    1. 0.59375(10)
    2. 0.43(8)
    3. 0.98(16)
    4. 0.10011(2)

      정답 : 2

      ❒ 보기에서 주어진 값들을 십진수로 변환하여 비교해보자.

      • 0.59375(10)
      • 0.43(8) = 4×8-1+3×8-2 = 0.546875(10)
      • 0.98(16) = 9×16-1+8×16-2 = 0.59375(10)
      • 0.10011(2) = 1×2-1+0×2-2+0×2-3+1×2-4+1×2-5 = 0.59375(10)

  2. 이진수 1100101.10011을 8진수와 16진수로 각각 올바르게 변환한 것은?
    1. 145.46  65.98
    2. 145.23  65.13
    3. 621.46  C5.98
    4. 621.23  C5.13
      정답 : 1

      ❒ 2진수를 8진수 또는 16진수로 변환하기 위해서는 2진수 표현에서 소수점을 기준으로 정수 부분에 대해서는 왼쪽 방향, 소수 부분에 대해서는 오른쪽 방향으로 세 자리씩 묶어서 나타내면 8진수의 한 자릿수가 되고, 네 자리씩 묶어서 나타내면 16진수의 한 자릿수가 된다.

      • 8진수로의 변환: 1100101.10011 → 001 100 101 . 100 110 → 1 4 5 . 4 6 (8)
      • 16진수로의 변환: 1100101.10011 → 0110 0101 . 1001 1000 → 6 5 . 9 8 (16)

  3. 2의 보수 방식을 사용해서 8비트로 표현된 정수 10100001은 십진수로 얼마인가?
    1. -110
    2. -105
    3. -100
    4. -95
      정답 : 4

      ❒ 주어진 음수를 2의 보수 방식으로 표현하기 위해서는 ① 주어진 음수의 절대값을 이진수로 변환하고, ② 이진수의 각 비트에 대해서 보수(0은 1로, 1은 0으로 바꿈)를 취한 후, ③ 그 결과에 1을 더하면 된다.

      ❒ 하지만 주어진 문제는 반대의 경우이다. 따라서 위의 과정(주어진 음의 정수를 2의 보수 방법으로 변환하는 과정)의 역순으로 처리하면 된다. 즉 2의 보수로 표현된 수에서 1을 빼고(10100001-1=10100000), 그 결과에 대해서 보수를 취하면 01011111이 되고, 이것을 십진수로 변환하면 95가 되는데, 2의 보수 방식으로 표현된 수의 부호 비트가 1이므로 음의 정수 -95가 된다.

  4. 십진수 53.625를 부동소수점 방식의 실수 표현으로 올바르게 것은?
    (단, 주어진 부동소수점은 16비트를 사용한다. 이 중에서 지수를 위해 5비트를 할당하며 초과_15 표기법을 사용한다.)

    1. 0 10100 1010110100
    2. 0 01111 1101011010
    3. 0 10100 1101011010
    4. 0 01111 1010110100
      정답 : 1

      ❒ 주어진 실수를 이진수로 변환(정수 부분과 소수 부분으로 구분하여 처리)하면 110101.101가 되고, 이에 대해 정규화를 수행하면 1.10101101×25가 된다.

      • 부호 비트(1비트) → 주어진 수가 0보다 크므로 0이 된다.
      • 지수 → 지수값 5와 매직넘버 15를 더한 값 20을 이진수로 변환해서 5비트에 할당하면 10100이 된다.
      • 가수 → 소수점의 왼쪽 1을 제외한 나머지 부분(10101101)을 10비트(16비트 중에서 부호 1비트와 지수 5비트를 사용하고 남은 비트)에 할당하면 1010110100이 된다.

  5. 다음 설명에 해당하는 문자 코드 체계는 무엇인가?
    – 1995년 국제 표준으로 제정되었으며, 공식 명칭은 ISO/IEC 10646-1이다.
    – 16비트 코드 체계로서, 세계의 모든 문자를 표현할 수 있다.
    1. ASCII 코드
    2. EBCDIC 코드
    3. 유니코드
    4. 확장된 ASCII 코드
      ❒ 유니코드는 애플 컴퓨터, IBM, MS 등의 컨소시엄을 통해 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준으로, 사용 중인 플랫폼, 프로그램 등에 무관한 특징을 갖는다.

정리하기

  1. 데이터와 정보
    • I=P(D) → “데이터 D를 대상으로 처리기 P에서 처리해서 얻은 결과가 정보 I이다.”
      • 데이터 → 현실 세계로부터 관찰이나 측정을 통해 단순히 얻어지는 사실이나
      • 정보 → 어떤 상황에 대해 적절한 의사결정을 수행할 수 있게 하는 지식
      • 데이터 처리(“정보처리”) → 데이터를 정보로 가공하고 변환하는 일련의 과정
    • 모든 데이터는 유형에 무관하게 비트 패턴이라는 일관된 방식으로 표현
    • 데이터의 표현 단위 → 비트, 바이트, KB, MB, GB, TB, PB, EB, ZB, YB
      • 워드 → 컴퓨터 연산의 기본 단위가 되는 정보의 양
        .
  2. 진법
    • r진법 → 0, 1, …, (r-1)까지의 숫자만을 사용해서 수를 표현하는 방식 또는 단위
    • 2진법, 8진법, 10진법, 16진법 간의 변환이 필요
      • 2진수/8진수/16진수를 10진수로 변환 → 각 위치에서의 숫자값과 해당 위치에서의 가중치(자릿값)를 곱한 후, 그 결과들을 모두 더함
      • 10진수를 r진수로 변환 → 정수 부분과 소수 부분을 나눠서 각각의 방법으로 변환한 후, 그 결과를 단순히 연결해서 표현함 → 정수 부분에 대해서는 나눗셈을 적용한 후 나머지를 결과로 활용, 소수 부분에 대해서는 곱셈을 적용한 후 정수 부분을 결과로 활용
      • 2진수와 8진수/16진수의 관계 → 2진수의 3자릿수 = 8진수의 1자릿수, 2진수의 4자릿수 = 16진수의 1자릿수
        .
  3. 정수 표현
    • 정수 표현 방법의 종류 → 부호 없는 정수, 부호 있는 정수(부호화-크기 방식, 1의 보수 방식, 2의 보수 방식가
    • 부호 없는 정수 → 부호 비트가 없으며, 주어진 n비트 전체를 사용해서 정수(0~2n-1)를 표현
    • 부호화-크기 방식 → 최상위 1비트를 부호 비트로 사용하고, 음의 정수는 음수에 대한 절대값으로 표현
    • 1의 보수 방식 → 부호 비트 사용. 음의 정수는 양의 정수 표현에 대해 보수(0→1, 1→0)를 취해서 표현
    • 2의 보수 방식 → 부호 비트 사용. 음의 정수는 1의 보수 방식의 결과에 1을 더해서 표현
      .
  4. 실수 표현
    • 부동소수점 방식을 사용해서 표현
      • 표현 형식 → (-1)부호×가수×2지수 → “부호(1비트)+지수(m비트)+가수(n비트)”
        .
    • 지수의 표현
      • 초과표기법 → 부동소수점의 지수 부분만을 위한 표기 방법 → 지수를 m비트로 표현하는 경우 두 개의 매직 넘버(2m-1, 2m-1-1) 중에서 하나를 사용
      • 지수값을 저장하는 경우 → (지수값 + 매직 넘버)를 이진수로 표현/저장
      • 저장된 지수값을 해석하는 경우 → (지수 부분의 이진수 값 – 매직 넘버)
        .
    • 가수의 표현
      • 정규화 → 소수점 바로 왼쪽에 오직 하나의 1만 있도록 소수점의 위치를 조정 → 가수값을 저장할 때는 소수점 이하 부분만 저장
        .
  5. 문자 표현
    • 키보드로 입력되는 문자를 내부적으로 2진수로 변환하여 처리하기 위해서는 문자마다 유일한 코드를 부여할 수 있는 약속된 문자 체계가 필요
      • 대표적인 문자 체계 → ASCII (또는 확장된 ASCII), 유니코드

Leave a Comment