본문 바로가기

Learn/자료구조와 알고리즘

자료구조와 알고리즘 학습 #2 자료 표현

반응형

2020/08/29 - [Learn/자료구조와 알고리즘] - 자료구조와 알고리즘 학습 #1 자료구조 간단히 알아보기

 

자료구조와 알고리즘 학습 #1 자료구조 간단히 알아보기

자료구조 정의  자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업 개요  컴퓨터 분야에서 배워야하는 이유  컴퓨터가 효율적으로 문��

javart.tistory.com


자료구조

자료의 표현

디지털 시스템에서의 표현

 숫자, 문자, 그림, 소리, 기호 등 모든 형식의 자료를 2진수 코드로 표현하여 저장과 처리를 한다.

 

2진수 코드

 2진수 코드란, 1과 0으로 이루어진 수로 On, Off 혹은 참과 거짓의 조합으로도 본다.

 

2진수 단위

- 2진수 하나로 이루어진 것을 bit(비트)라 부른다.

- bit가 네개 모인 것을 nibble(니블)이라 부른다.

- bit가 여덟게 혹은 nibble이 두개 모인 것을 byte(바이트)라 부른다.

 

2진수 단위

 

디지털 시스템에서의 표현

 n개의 비트로 2^n개의 상태 수로 표현한다.

 

컴퓨터 내부에서 표현할 수 있는 자료의 종류


수치 자료의 표현

10진수의 표현

 1) 존(Zone) 형식의 표현

  - 10진수 한 자리를 표현하기 위해서 1byte를 사용하는 형식으로 존 영역과 수치 영역으로 나뉜다.

  - 존 영역은 상위 4비트로 항상 1111로 표현한다.

  - 수치 영역은 하위 4비트로 표현하고자 하는 10진수 한 자리 값에 대한 2진수 값을 표시 하며, 10~15까지는 A에서 F까지의 문자를 사용한다.(헥사코드)

 

 - 여러 자리의 10진수를 표현하는 방법

 

 기본적으로 10진수의 자릿수 만큼 존 형식을 연결하여 사용한다. 

ex) 123-> 3개의 존을 사용하여 표현

 

 마지막 자리의 존 영역엔 부호를 표시한다.

양수(+) : 1100 = C

음수(-) : 1101 = D

 

보면 알겠지만 4비트씩 낭비하므로 기억 공간을 낭비하게 되며, 따라서 처리 속도가 지연될 수 있다.

 - 존 형식으로 10진수를 표현하는 예

 +213 : [1111 0010] [1111 0001] [1100 0011] 

 -213 : [1111 0010] [1111 0001] [1101 0011] 

 

 2) 팩(Pack) 형식의 표현

 10진수 한 자리를 표현하기 위해 존 영역 없이 4비트를 사용하는 형식으로 1바이트에 10진수 2자리를 표현한다. 그리고 부호비트는 최하위 4비트에 부호를 표시하며 표시 비트는 존과 같다.

 

 

- 팩 형식으로 10진수를 표현하는 예

 +213 : [0010 0001] [0011 1100]

 -213 : [0010 0001] [0011 1101]

 

2진수의 정수 표현

 n 비트의 부호 절대값 형식이다. 최상위 1비트가 부호 표시로 0은 양수, 1은 음수를 나타내며, 나머지 n-1 비트로 이진수를 표현한다.

 

1바이트를 사용하는 부호 절대값 형식의 예

- 1의 보수 (1' Complement) 형식

 양수의 경우는 부호 절대값 형식으로 표현하지만, 음수의 경우 부호 비트를 사용하는 대신 1의 보수를 사용하여 표현한다.

 

보수란, n이 m의 값이 되는데 필요한 수, 즉 보충해주는 수를 의미한다. 1에 대한 10의 보수는 9이다.

 

 n비트의 2진수를 1의 보수로 만드는 방법 또한 각 자리 수를 1의 보수를 진행하면 된다.

-21을 1의 보수로 만들기

- 2의 보수 (2' Complement) 형식

 n비트에 2의 보수를 하면 된다. 이진수에서 2의 보수는 1의 보수 한 값에 1을 더한 값과 같다.

참고 자료 : ndb796.tistory.com/4

 


2진수의 실수 표현

 부동 소수점 형식의 표현을 하며, 일반적으로 컴퓨터에선 4바이트 혹은 8바이트로 표현한다.

 

참고 자료 : steemit.com/kr/@modolee/floating-point

 


문자 자료의 표현

 컴퓨터 상에서는 문자 자료도 이진 코드로 표현한다.

 

1) BCD(Binary-Coded Decimal) 표현

 6비트를 사용하여 문자를 표현한다. 존 비트와 숫자 비트를 조합하여 10진수 0~9와 영어 대문자, 특수 문자를 표현했다.

 - 상위 2비트 : 존 비트

 - 하위 4비트 : 숫자 비트

존비트 AB에 따른 값

 - 00 : 0, 1~9 ( 1010, 0001 ~ 1001)

 - 01 : 문자 ( A ~ I) (0001 ~ 1001)

 - 02 : 문자 (J ~ R) (0001 ~ 1001)

 - 03 : 문자 (S ~ Z) (0010 ~ 1001)

참고 자료 : m.blog.naver.com/cni1577/221595979360

 

 

2) EBCDIC (Extended Binary-Coded Decimal Interchange Code)

 

 IBM에서 8비트를 사용하여 개발한 문자 표현 코드로 4비트의 존 코드와 4비트의 숫자 코드로 조합된다. 이번엔 대소문자를 분류할 수 있게 되었다.

 

EBCDIC 코드표

참고 자료 : ehpub.co.kr/tag/ebcdicextended-bcd-interchange-code-%EC%BD%94%EB%93%9C/

 

3) ASCII(American Standard Code for Information Interchange) 코드

 - EBCDIC 코드와 유사하지만 일반적으로 ASCII(아스키) 코드를 더 많이 사용하며, 지금에도 일부 프로그래밍 언어에서 영어를 표현함에 사용한다. 3개의 존 비트와 4개의 숫자 비트로 이루어지며, 대소문자를 분류할 수 있다.

 

 

 

참고 자료 : shaeod.tistory.com/228

 


논리 자료의 표현

 논리 값을 표현하기 위한 자료 형식으로 논리의 참(True)과 거짓(False)를 표현하는 방식으로 세가지 정도가 있다.

 

1. 최하위 비트를 1로 표시하면 참 0으로 표시하면 거짓

 True : [0000 0001]

 False : [0000 0000]

 

2. 전체 비트를 1로 표시하면 참, 0으로 표시하면 거짓

 True : [1111 1111]

 False : [0000 0000]

 

3. 일부 비트를 1로 표시하면 참, 전체가 0으로 표시하면 거짓

 True : [ 1000 0000] or [ 0010 0001] ...

 False : [0000 0000]


포인터 자료의 표현

 포인터 자료란 메모리의 주소를 표현하기 위한 자료 형식이다. 변수의 주소나 메모리의 특정 위치에 대한 주소를 저장하고 주소 연산을 위해 사용하는데, 복잡한 자료구조 연산을 메모리에서의 주소 연산만으로 처리가 가능해진다.

 

참고 자료 : claude-u.tistory.com/64

 

 


문자열 자료의 표현

 - 하나의 문자만 표현할 수 있는 문자 자료와 달리 여러 문자로 이루어진 문자의 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 젖아하는 자료 형식 (문자의 배열 -> 문자열)으로 방법은 크게 세 가지 있다.

 

1. 부분 문자열 사이에 구분자를 두고 연속 저장 하는 방법

세미콜론(;)을 사용하여 구분

2. 가장 긴 부분문자열의 길이에 맞추어 고정 길이로 연속 저장하는 방법

고정 길이 사용 법

 

3. 부분 문자열을 연속 저장하고 각 부분 문자열에 대한 주소와 문자열의 마지막 주소를 포인터에 저장하는 방법

 

포인터로 저장

반응형