티스토리 뷰
컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다.
1. 컴퓨터의 수 체계
우리는 10진수를 사용하지만 컴퓨터는 0과 1로 모든 것을 판단하기 때문에 2진수를 사용한다.
컴퓨터의 연산과 제어의 기본은 부울대수이며, 컴퓨터가 다루는 데이터를 2진 숫자(Binary digIT)라고 하며 약자로 비트(BIT)라고 한다.
8개의 비트를 한 단위로 하여 1바이트(byte)로 사용한다.
컴퓨터에서는 2진수 외에도 8진수, 16진수도 사용하는데 이것에 대한 추가 내용은 아래 글을 참고하자. (내가 쓴 글)
2021.01.17 - [코딩 공부/C 언어] - C 언어 기초 : 2진수, 8진수, 16진수 등등... 진법
2진수의 최상위 비트를 MSB(most significant bit)라 하고 최하위 비트를 LSB(least significant bit)라 한다.
2. 데이터의 표현
1) BCD 코드
Binary Coded Decimal의 약자로 8421 코드라고도 한다.
BCD 코드는 각 비트 자리가 자리값을 갖는데 1010 이라는 4자리 비트가 있다고 했을 때 왼쪽(10진수로 생각할 때 1000의 자리)부터
2^3 = 8
2^2 = 4
2^1 = 2
2^0 = 1
의 값을 가지므로 8421 코드라 부른다.
일반적으로 10진수를 2진수로 표현하는 것과 비슷하지만 10이 넘어가면 2진수는 1010이라고 표현하지만 BCD 코드는 0001 0000, 11은 0001 0001 ... 와 같은 방식으로 표현한다.
2) 문자 데이터
문자 데이터는 1바이트의 데이터이다. 아스키코드의 문자 ABC를 2진법과 16진법으로 나타낸다면 다음과 같이 된다.
문자 | 2진법 | 16진법 |
A | 0100 0001 | 41H |
B | 0100 0010 | 42H |
C | 0100 0011 | 43H |
3) 존(Zone) 형식
언팩(unpack) 형식이라고도 하며, 1바이트에 한 개의 10진수가 저장된다. 1바이트의 왼쪽 4비트를 존(zone) 비트라고 하며 항상 F(16진수)가 들어 있다.
2진수 | 1111 | 0111 | 1111 | 0001 | 1100 | 0010 |
16진수 | F | 7 | F | 1 | C(양수) | 2 |
10진수 712를 표현한다면 위와 같이 표현되는데 마지막 바이트의 왼쪽 4비트를 이용해서 부호를 나타낸다. 위와 같은 경우처럼 마지막 바이트의 왼쪽 4비트가 C라면 양수고
2진수 | 1111 | 0111 | 1111 | 0001 | 1101 | 0010 |
16진수 | F | 7 | F | 1 | D(음수) | 2 |
위처럼 D라면 음수로 -712가 된다.
4) 팩(Pack) 형식
수치를 표현하는 4비트릐 BCD를 1바이트에 2개를 나타내며 10진수 숫자 2개를 표시한다. 존 형식이 절반으로 줄어든 형태라고 보면 된다.
2진수 | 0111 | 0001 | 0010 | 1100 |
16진수 | 7 | 1 | 2 | C(양수) |
2진수 | 0111 | 0001 | 0010 | 1101 |
16진수 | 7 | 1 | 2 | D(음수) |
5) 고정 소수점 형식
고정 소수점 형식은 소수점 위치가 가장 오른쪽 끝에 고정되어 있다고 가정하는 것으로 전체의 수를 정수로 표현하다. 가장 왼쪽의 비트는 부호를 표시하며 0이면 + 양수, 1이면 - 음수를 나타낸다. 데이터 길이를 n이라고 했을 때 -(2^n-1 -1) ~ (2^n-1 -1)의 범위를 나타낼 수 있다.
고정 소수점은 BCD 코드에 비해서 명령 속도가 빠르다.
6) 부동 소수점 표현
아주 큰 수나 아주 작은 수를 표현한다든지 아니면 높은 정도(precision)로 취급할 때 많이 쓰인다. 유효숫자만을 나타내는 소수부(fraction part)와 소수점의 위치를 나타내는 지수부(exponent part)로 구분한다. 10^-78 ~ 10^74의 범위까지를 나타낼 수 있다.
3. 보수 연산
보수(complement)란 어떤 기준이 되는 수를 설정했을 때 그 수에 모자라는 수를 말한다. x에 대한 9의 보수는 9로부터 x를 뺀 것인데, 6에 대한 9의 보수는 3이고 2에 대한 10의 보수는 8이다.
보수 연산은 뺄셈을 할 때 9의 보수를 사용하는 방법과 1의 보수와 2의 보수를 사용하는 방법 등이 있다.
4. 정보 교환용 코드
정보 교환용 코드는 국제표준화기구(ISO)에 의해 정해지고 이것에 준해서 각국에서 정하여 사용하고 있다. 컴퓨터 대 컴퓨터시스템간의 통신을 단순화하고 표준화하기 위해 만들어졌다. 대표적인 것으로 우리가 프로그래밍을 할 때 자주 쓰는 아스키(ASCII) 코드가 있다. 그리고 산업 표준으로 전세계 모든 문자들을 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 유니코드(Unicode)가 제정되어 사용되고 있다. (스크립트에서 한글 주석이 깨지지 않게 하려면 UTF-8로 저장...)
'컴퓨터 사이언스' 카테고리의 다른 글
[컴퓨터 사이언스] 컴퓨터 하드웨어 구성 (0) | 2021.11.06 |
---|---|
[컴퓨터 사이언스] 부울대수 (0) | 2021.10.31 |
[컴퓨터 사이언스] 컴퓨터의 분류 (0) | 2021.10.23 |
[컴퓨터 사이언스] 컴퓨터의 역사 (0) | 2021.10.23 |
[컴퓨터 사이언스] 컴퓨터는 무엇일까? (0) | 2021.10.23 |
- Total
- Today
- Yesterday
- BFS
- 다이나믹프로그래밍
- 백준
- 깊이우선탐색
- 영어공부
- 코딩공부
- 문제풀이
- 아이패드
- 스위프트플레이그라운드
- DFS
- 너비우선탐색
- 알고리즘
- c++
- 애플
- dp
- 프로그래머스
- c언어
- 하드웨어
- 해커랭크
- 컴퓨터사이언스
- 기초
- greedy
- 컴퓨터공부
- C언어기초
- 캐나다생활
- 프로그래밍
- 캐나다
- 그리디
- hackerrank
- 컴퓨터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |