[컴퓨터구조] 2강. 컴퓨터 정보의 표현

컴퓨터 정보의 표현


정보의 표현과 저장

컴퓨터 정보


프로그램 코드 -> 저급언어와 고급언어로 나뉨
(컴퓨터에 친화적이면 저급언어, 사람에 친화적이면 고급언어)




컴파일러의 역활


고급 언어로 작성된 Z = X + Y의 컴퓨터 인식


고급 언어 프로그램 => 어셈블리 프로그램 => 기계어 프로그램

[ Z = X + Y ] => [ LOAD A, X ] => [ 00100101 ]
                 [ ADD  A, Y ]    [ 10000110 ]
                 [ STOR Z, A ]    [ 01000111 ]


컴파일러 (Compiler)와 어셈블러 (Assembler)


분류 특징
컴파일러 * 고급 언어로 작성한 원시프로그램을 기계어로 번역하여 목적프로그램으로 생성하는 프로그램
* 각종 고급 언어마다 고유의 컴파일러 존재
인터프리터 * 원시 프로그램을 구성하는 각각의 명령문을 한 줄씩 변환시키면서 즉시 시행하는 PGM BASIC, LISP, APL 등의 언어
어셈블러 * 어셈블리어로 작성한 프로그램을 기계어로 번역


진법 변환

컴퓨터에서 정보 표현

비트 (Bit) -> 바이트 (1Byte = 8bit) -> 워드 (Word)



HDD(SSD) => RAM => CPU

HDD에 저장된 데이터를 RAM으로 옮겨서 CPU에서 연산을 처리하여
RAM이 기억하고 있다가 HDD에 저장하는데, 데이터가 버스를 통해
옮겨다니는 것을 32bit가 하느냐 64bit가 하느냐에 따라
작업 속도 및 처리량이 달라지게 된다.

예전에는 32Bit였지만, 근래에는 64Bit로 되면서
보다 처리속도 및 처리량이 좋아졌다.

32bit보다 64bit가 2배 빨라요?
-> 한번에 데이터 처리하는 양이 2배 빨리지니,
   2^n(n은 처리횟수)배 만큼 빨라질겁니다..



구분 K M G T P E Z Y
단위 킬로 메가 기가 테라 페타 엑사 제타 요타
환산 2^10 2^20 2^30 2^40 2^50 2^60 2^70 2^80


진법에 따른 수의 변환

  1. 10진수

    • 0~9의 10가지 수를 한 자리(Digit)의 기본단위로 사용

    • 10진수

      • 각 자리는 오른쪽부터 1(10^0)자리, 10(10^1)자리, 100(10^2)자리 순
    • N진수

      • 각 자릿수는 0에서 N-1까지의 정수를 이용함
      • 오른쪽부터 n번째 자리의 크기는 N^n-1
    • 10진수를 2진수로 표현 하기 위해서는 2로 계속 나누면 된다.
    • 10진수를 8진수로 표현 하기 위해서는 8로 계속 나누면 된다.


  1. 2진수

    • 0과 1의 2가지 표현으로 각 자릿수를 표시
    • 오른쪽부터 2^0, 2^1, 2^2… 지수 증가
    • 2진수를 10진수로 바꾸려면 2 * 1, 2 * 2, 2 * 4…처럼 각각의 자리 숫자를 곱한후 더해주면 된다.


  1. 8진수

    • 0부터 7까지의 8가지의 수를 이용하여 숫자를 표시
    • 8진수를 10진수로 바꾸려면 8 * 1, 8 * 2, 8 * 4…처럼 각각의 자리 숫자를 곱한후 더해주면 된다.


  1. 16진수

    • 0에서 9까지 그리고 A에서 F까지 총 16개의 숫자나 문자를 사용하여 표시


컴퓨터에서 음수 표현 방법


10진법 2진법 8진법 16진법
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F


보수의 개념

보수란? : 컴퓨터에서 음수를 표현할 때 사용


10진수 -14를 2Bit로 표현해보세요

1110 -> 14

부호화 절대치 : 10001110 (첫 비트는 부호비트로 음수일 때 '1'임)
부호화 1의 보수 : 11110001 (부호비트는 고정하고, 각 자리 값을 바꿈)
부호화 2의 보수 : 11110010 (마지막 자리에 1을 더함)


r진법에서 (r-1)의 보수

A라는 수에 B라는 수를 더해서 각 자리마다 자리올림이 발생하고
해당 자리는 0이 될 때, B는 A의 보수가 된다.

10진수 237에 대한 9의 보수를 B라고 가정할 때, B의 값은?

237 + B = 999
-> 237 + B = 1000 -1
-> B = 1000 - 1 - 237 = 732


부호가 없는 2진수의 뺄셈 연산에서 보수의 활용

보수계산 확실하게 알아두기


데이터의 2진수 표현

데이터의 표현 방법 - 일반적인 디지털 장치에서 데이터의 표현


소수의 표현

고정소수점(Fixed-point) 표현


부동소수점 표현


문자 데이터의 표현

문자 표현 방법

영숫자 코드 (Alphanumeric Code)


표준 BCD 코드 (Binary Coded Decimal)


ASCII 코드


2진수와 BCD 코드의 차이점

2진수 BCD 코드
* 각 자리마다 무게 값이 있음 * 10진수 한자리를 4비트로 구성된 2진수로 표현함
* 4개의 비트 사용시 0000~1111가지 16개 표현이 가능하나, 10개만 사용하고, 1010~1111까지는 사용하지 않음


패리티 검사 코드 : 단순한 오류 검출 코드


패리티 비트


짝수 패리티(Even parity) 홀수 패리티(Odd parity)
* 1의 전체 개수가 짝수가 되도록 함
* ‘0’ 추가
* 1의 전체 개수가 홀수가 되도록 함
* ‘1’ 추가


해밍 코드 : 오류 검출 및 정정 코드