티스토리 뷰
컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다.
1. 컴퓨터의 수 체계
우리는 10진수를 사용하지만 컴퓨터는 0과 1로 모든 것을 판단하기 때문에 2진수를 사용한다.
컴퓨터의 연산과 제어의 기본은 부울대수이며, 컴퓨터가 다루는 데이터를 2진 숫자(Binary digIT)라고 하며 약자로 비트(BIT)라고 한다.
8개의 비트를 한 단위로 하여 1바이트(byte)로 사용한다.
컴퓨터에서는 2진수 외에도 8진수, 16진수도 사용하는데 이것에 대한 추가 내용은 아래 글을 참고하자. (내가 쓴 글)
2021.01.17 - [코딩 공부/C 언어] - C 언어 기초 : 2진수, 8진수, 16진수 등등... 진법
C 언어 기초 : 2진수, 8진수, 16진수 등등... 진법
이전 글 2020/12/20 - [코딩 공부] - C언어 기초 : 서식 문자(제어 문자) C언어 기초 : 서식 문자(제어 문자) 이전 글 2020/12/20 - [코딩 공부] - C언어 기초 : Escape 문자 이번 포스트에서는 서식 문자에 관해
hgu-can.tistory.com
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
- 아이패드
- 컴퓨터공부
- 스위프트플레이그라운드
- 영어공부
- 프로그래머스
- hackerrank
- 캐나다
- BFS
- 알고리즘
- C언어기초
- 캐나다생활
- 문제풀이
- 그리디
- 깊이우선탐색
- 프로그래밍
- dp
- 너비우선탐색
- 해커랭크
- 컴퓨터
- 코딩공부
- 컴퓨터사이언스
- 기초
- 백준
- 다이나믹프로그래밍
- 애플
- c언어
- DFS
- c++
- greedy
- 하드웨어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |