컴퓨터의 자료 표현
자료의 정의
- 협의의 자료 : 프로그램 실행을 위해 필요한 것
- 광의의 자료 : 프로그램과 그 프로그램을 이용해 원하는 결과를 얻기 위해 사용하는 모든 재료
자료의 표현 원리
-
모든 자료는 0과 1로 문장 표현된다.
ex) string ‘a’ === 01100001 -
컴퓨터 내부에서는 두가지 전기신호만을 표현할 수 있는 트랜지스터를 이용하여 자료를 처리하고 저장한다.
ex) 전류가 들어오면 0(On), 안들어오면 1(Off) -
비트 : 컴퓨터의 정보 처리 단위중에서 가장 작은 정보 단위 (Binary Digit : 0, 1)
-
니블 : 바이트의 1/2 크기인 4비트
-
바이트 : 비트가 연속적으로 8개 모인 정보 단위 (1byte = 8bit) : 총 256(2^8)가지 종류의 정보 저장 가능
-
워드 : 4개의 바이트 모음, 시스템마다 크기가 다를 수 있음
(window : 32bit = 1 word, unix : 64 bit = 1 word) -
비트 (1bit), 니블 (4bit), 바이트 (8bit), 워드 (32bit(window) 64bit(unix))
저장 용량의 단위
- 바이트가 저장 용량의 기본 단위
킬로 => 메가 => 기가 => 테라 => 페타 => 엑사 => 제타 => 요타
구분 | B | KB | MB | GB | TB | PB | EB | ZB | YB |
---|---|---|---|---|---|---|---|---|---|
단위 | 바이트 | 킬로바이트 | 메가바이트 | 기가바이트 | 테라바이트 | 페타바이트 | 엑사바이트 | 제타바이트 | 요타바이트 |
하위 단위 환산 | 1 Byte | 1024 Byte | 1024 KB | 1024 MB | 1024 GB | 1024 TB | 1024 PB | 1024 EB | 1024 ZB |
바이트 환산 | 2^0B | 2^10 B | 2^20 B | 2^30 B | 2^40 B | 2^50 B | 2^60 B | 2^70 B | 2^80 B |
진수와 수의 표현
-
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로 계속 나누면 된다.
-
-
2진수
- 0과 1의 2가지 표현으로 각 자릿수를 표시
- 오른쪽부터 2^0, 2^1, 2^2… 지수 증가
- 2진수를 10진수로 바꾸려면 2 * 1, 2 * 2, 2 * 4…처럼 각각의 자리 숫자를 곱한후 더해주면 된다.
-
8진수
- 0부터 7까지의 8가지의 수를 이용하여 숫자를 표시
- 8진수를 10진수로 바꾸려면 8 * 1, 8 * 2, 8 * 4…처럼 각각의 자리 숫자를 곱한후 더해주면 된다.
-
16진수
- 0에서 9까지 그리고 A에서 F까지 총 16개의 숫자나 문자를 사용하여 표시
컴퓨터에서 음수 표현 방법
- 보수 : 컴퓨터에서 음의 정수를 표현하기 위해서 존재한다. (CPU에는 가산기(덧셈)민 존재하기 때문)
- 2의 보수 : 1의 보수에 1을 더하는 방법
- 1의 보수 : 주어진 이진수의 비트를 각각 0은 1로, 1은 0으로 변환하는 방법
- 부호와 절대치 : 양수 표현에 대하여 부호 비트의 값만 0을 1로 바꾸는 방법
컴퓨터의 정보 종류
정수
부호가 있는 정수 표현
- 양수와 음수를 모두 다루는 정수를 부호가 있는 (Signed) 정수
- 컴퓨터는 정수와 양수와 음수를 포현하는데, 주로 2진수와 2의 보수 방법을 이용
- 8비트의 메모리로는 2^8(256)의 정보를 표현 (2^7 ~ 2^7-1)
부호가 없는 정수 표현
- 양수만을 다루는 정수를 부호가 없는 (Unsigned) 정수
문자와 논리
문자
-
영문자는 7개의 비트의 조합으로 표현
-
아스키코드
(ASCII : American Standard Code for Information Interchange)- 미국 표준협회에서 국제적인 표준으로 정한 문자 코드 체계
- 7비트를 사용하여 128개의 문자, 숫자, 특수문 코드를 표현
- 7비트를 이용하지만 실제로 한 문자는 8비트인 1바이트에 저장
- 한 문자의 시작은 0으로, 나머지는 코드 값으로 구성
(원래는 7비트지만, 실제 한문자는 8비트인 1바이트에 저장되기 때문)
-
엡시딕
(EBCDIC : Extended Binary Coded Decimal Interchange Code)- 8비트를 사용하여 문자를 표현하는 코드 표준으로 IBM에서 제정한 코드
- Zone bits(2bit), Numeric bits를 종류별로 구분해 놓음
(11: 대문자, 소문자, 10: 소문자, 01: 특수문자, 00: 사용하지 않음)
-
유니코드
(Unicode)- 전 세계 모든 언어를 하나의 코드 체계 안으로 통합하기 위하여 만들어진 코드
- 전 세계 문자를 모두 표현하기 위한 2바이트인 16비트로 확장된 코드 체계
논리
- 참(True)과 거짓(False)을 의미하는 두 가지 정보를 표현한 논리 값
컴퓨터의 연산
정수 연산
정수의 연산에서 주의할 점은 정해진 비트를 넘어서는 올림은 무시
17 (00010001) + 23 (00010111) => 40 : 00101000
정수의 뺄셈
- 2의 보수를 이용한 음수의 표현 방법을 이용
- a-b의 연산은 a + (-b)로 변환하여 덧셈을 수행 ex) 4 - 4 => 4(0100) + (-4)(1100) = 0(0000)
부동소수 연산
- 부동소수의 덧셈과 뺄셈은 지수 부분을 두 지수 중에서 큰 수의 지수로 같게 조정하여 가수 부분을 덧셈 또는 뺄셈
- 메모리에 결과 값을 저장하기 전에 다시 정규화하여 저장
- 뺄셈 : 가수의 뺼셈에서 큰 것에서 작은 것을 빼고 큰 것을 부호를 부호부에 이용하면 연산이 간편
논리 연산
단항 연산자
- NOT 연산자
- 하나의 항만이 연산에 참여
이항 연산자
- AND, OR 연산자
- 두 개의 항이 연산에 참여
연산자 NAND
: AND연산의 결과와 반대 !(A && B)
연산자 NOR
: OR 연산의 결과와 반대 !(A || B)
연산자 XOR
: 항이 서로 다르면 1이고, 같으면 0인 결과
부울 대수
- 논리회로를 수학적으로 해석하기 위해 영국의 수학자 부울(Boolean)이 제창한 기호 논리학의 한 분야
- 컴퓨터가 정보를 처리하는 방식에 대하여 이론적 배경을 제공함
부울 대수 공식 찾아보기
논리 함수 (부울 함수)
- 논리적인 문제를 해결하기 위한 수학적인 방법
- 이진 논리 (Binary Logic) 사용 : 참(1), 거짓(0)
- 논리 연산 : 논리곱(AND), 논리합(OR), 논리부정(NOT)
- 게이트 : 신호를 나타내는 데 사용되는 논리회로
논리 회로 설계 그려보기
부울 함수의 간소화 문제 풀어보기 (카노맵 이용해보기)