컴퓨터과학 개론 02 - 컴퓨터와 데이터

Wonil Jang·2024년 9월 3일

컴퓨터과학

목록 보기
7/12
post-thumbnail

해당 포스트는 강의를 수강 후 개인적으로 이해한 부분을 글로 기록하고 해석하기 위한 목적으로 이해한 부분이 틀릴수도 있습니다. 틀린 부분에 대해서는 편하게 지적해 주시면 수정하겠습니다.

1. 데이터와 정보

1. 데이터와 정보의 관계

I = P(D)

  • 데이터, D : 현실 세계로부터 관찰이나 측정을 통해 단순히 얻어지는 값/사실
  • 처리기, P : 데이터와 정보를 처리
  • 정보, I : 어떤 상황에 대해 적절한 의사 결정을 수행할 수 있게 하는 지식

2. 데이터의 표현 형태

  • 컴퓨터에서 표현되는 데이터의 형태는 문자, 정수, 실수, 이미지, 비디오, 오디오 등 데이터의 유형과 상관 없이 모두 비트 패턴이라는 일관된 표현 방식 사용

  • 메모리에 저장된 데이터 유형에 맞는 해석과 처리가 필요
    -> 입/출력 장치나 프로그램의 책임/역할

3. 데이터의 표현 단위

  1. 비트, Binary digit
  • 0 또는 1의 상태 중 하나를 표현
  1. 바이트, Byte
  • 길이가 8개인 비트 패턴, ex) 10진수 100 -> 01100100
  1. 그 외 단위
  • KB, MB, GB, TB, PB, EB, ZB, YB
  1. 워드, Word
  • 컴퓨터 연산의 기본 단위가 되는 정보의 양, 기본적으로 32bit와 64bit 사용

2. 진법

1. 진법이란

  • 수를 세는 방법 또는 단위

  • r진법 -> 0 ~ (r-1)까지의 숫자만을 사용하는 진법 -> r진수

  • 컴퓨터에서는 2진법 사용

  • 2진법으로 사용되는 숫자의 개수을 줄여보고자 8진법과 16진법을 사용

  • 진법의 각 숫자는 위치에 따라 서로 다른 가중치(자릿값)을 가짐

    • r진법의 자릿값 -> rˣ(x는 숫자의 위치를 나타내는 정수)

2. r진수를 10진수로 변환 - Σ(각 비트값 x 해당 비트 위치의 가중치)

ex)
1. 2진수를 10진수로 변환

2. 8/16진수를 10진수로 변환

3. 10진수를 r진수로 변환

  • 정수 부분과 소수 부분을 구분하여 각 방법으로 처리한 후, 결과를 단순히 연결해서 나열
    1. 정수 부분
    - 정수를 몫이 0이 될 때까지 r로 나눈 후 나오는 나머지 값 나열

    2. 소수 부분
    - 소수가 0이 될 때까지 r을 곱하여 발생하는 정수 부분을 나열


4. r진수 간의 변환

  • 8진수에서 16진수로 변환하는 과정은 없다. 2진수나 10진수로 변환한 후 한번 더 변환해야 한다.
  • 8진수는 2진수를 3자리씩 묶어서 표현하고 16진수는 2진수를 4자리씩 묶어서 표현

3. 정수 표현

1. 정수 표현 방법

  1. 부호 없는 정수
    • 부호(+,-) 비트가 없음
    • n비트 -> 0 ~ 2ⁿ-1, ex) 8비트 -> 0 ~ 2⁸(256)
      ex) 275란 정수가 주어졌을 때 2진수로 변환하면 100010011으로 9자리를 가진다.
      1byte에 채우려고 할 때 1bit가 모자라는데 이를 오버플로우(overflow)라고 한다.
  1. 부호 있는 정수

    • 최상위 비트 -> 부호 비트(0 = 양수, 1 = 음수)
    • 양의 정수는 모두 동일하고 음의 정수는 서로 다른 형태를 가짐
    1. 부호화 크기
      • 절대값, 양수의 값과 동일
    2. 1의 보수
      • 이진수로 표현된 양수의 값을 반대로 뒤집는다.
        ex) -124 = 10000011
    3. 2의 보수
      • (1의 보수) + 1
        ex) -124 = 10000011 + 1 = 10000100


컴퓨터에서는 2의 보수 방식을 사용한다. 부호화 크기나 1의 보수의 경우 +0과 -0이 있어 구분이 필요한데 2의 보수는 구분이 필요하지 않고 직접적인 연산이 가능하기 때문에 2의 보수 방식을 사용한다.

  1. 2의 보수 방식의 응용

    • 컴퓨터는 덧셈 연산만 가능하다.

    • 뺄셈은 빼기 위한 값의 2의 보수를 취한 후 덧셈을 수행한다.

    • 곱셈과 나눗셈은 덧셈과 뺄셈의 반복으로 수행한다.

    • 2진수 <-> 10진수 연산

    2진수 값이 주어지고 2진수는 음수를 표현한 값이다. 주어진 2진수의 10진수 값을 구할 때 2의 보수 방식으로 주어진 2진수에 1을 더한 후 보수 계산을 하고 나오는 2진수의 값을 10진수로 변환하면 된다. 반대로 음수 부호를 가진 10진수의 2진수는 위 순서대로 진행하면 된다.

    보수 결과 + 1 -> 보수 계산 -> 2진수를 10진수로 변환

4. 실수 표현

  • 과학적 표기법을 활용한 부동소수점 방식으로 표현
  • 컴퓨터에서 과학적 표기법

    부호는 0과 1로만 표시되기때문에 1비트 고정, 지수m와 가수n는 시스템을 만드는 목적에 따라 크기가 유동적으로 변할 수 있다.
  1. 초과 표기법

    • 부동소수점 방식의 지수 부분의 표현만을 위한 정수 표현 방법
    • 지수는 음수 또는 양수인데 음수를 표현하는 방법이 복잡하여 하나의 방법으로 표현하기 위해 사용하는 방식
    • 매직 넘버 -> 지수 부분이 m비트로 구성 -> 2ᵐ⁻¹ 또는 2ᵐ⁻¹ - 1
    • m = 8, 1바이트를 사용하는 경우 128, 127의 두 종류 매직넘버가 생긴다.
    • 실제 시스템에서는 두 종류 중 하나만 사용하겠다고 정의되어있다.
    • 저장, 지수 + 매직넘버
    • 해석, 값 - 매직넘버
  2. 정규화

    • 가수를 표현할 때 표준화된 형식이 필요
    • 소수점 왼쪽으로 1이 하나만 위치할 수 있도록 만드는 소수점 형식
  3. 실수 표현의 예

  4. IEEE 부동소수점 방식의 표준 형식

5. 문자 표현

  • 키보드에서 입력되는 문자는 내부적으로 2진수로 표현되어 처리
  • 각 문자마다 유일한 값으로서 코드를 할당할 수 있는 약속된 문자 체계가 필요
  • 대표적인 종류 -> ASCII, Unicode
  1. ASCII, American Standard Code for Information Interchange
    • 미국표준협회(ANSI)
    • 7비트 코드 -> 128개(2⁷)의 서로 다른 문자 표현
    • 확장된 아스키, Extended ASCII
      -> 1비트 -> 0 또는 패러티 비트
      -> 패러티 비트, Parity bit
      -> 짝수 패러티, 1의 개수를 짝수로 맞춰서 보내는 비트 -> 11001100
      -> 홀수 패러티, 1의 개수를 홀수로 맞춰서 보내는 비트 -> 01001100

Parity bit, 패러티 비트

  • 데이터 또는 정보를 주고 받는 과정에서 오류가 발생했는지 확인하기 위해 사용하는 비트


  1. 유니코드, Unicode

    • 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 표준

      1. 애플, IMB, MS 등 컨소시엄으로 설립한 유니코드가 첫 버전 발표
    • 1995년 국제 표준으로 제정 -> 공식 명칭: ISO/IEC 10646

    • 사용 중인 플랫폼, 프로그램, 언어에 무관

    • 16비트 코드 체계 -> 65,536개(2¹⁶)의 서로 다른 문자 표현

    • 유니코드의 앞부분은 ASCII와 같아서 호환에 전혀 문제가 없다.

  2. EBCDIC Extended Binary Coded Decimal Interchange Code

    • IBM 개발, 8비트 코드 -> 실제로 사용되는 문자 코드는 128개
    • IBM 메인 프레임에서만 사용
  3. BCD, Binary Coded Decimal

    • 4비트로 구성된 10개의 코드로 10진수를 표현하는 방식 -> 8421 코드
profile
아 좀 신나고 싶네! XD

0개의 댓글