티스토리 뷰

반응형

컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다.

 


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로 저장...)

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함