🌞[자료구조] 자료 표현 - 문자, 논리, 포인터, 문자열 자료
1. 문자자료의 표현
▶ 문자자료의 표현 : 문자에 대한 2진수 코드를 정의하여 사용
문자에 대한 이진수 코드표 : BCD 코드, EBCDIC 코드, ASCII 코드, 유니 코드
1) BCD 코드 (Binary-Coded Decimal)
① 6비트를 사용하여 문자표현
- 상위 2비트 : 존 비트
- 하위 4비트 : 2진수 비트
- 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어의 대/소문자 특수문자를 표현
2) EBCDIC 코드 (Extended Binary-Coded Decimal Interchange Code)
① 8비트를 사용하여 문자표현
- 상위 4비트 : 존 비트
- 하위 4비트 : 2진수 비트
- 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어의 대/소문자 특수문자를 표현
② 확장형 BCD 코드
3) ASCII코드 (American Standard Code for Information Interchange)
① 7비트를 사용하여 문자표현
- 상위 3비트 : 존 비트
- 하위 4비트 : 2진수 비트
- 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자/소문자, 특수문자를 표현
- 미국 표준화
4) 유니코드
① EBCDIC 코드나 ASCII 코드는 최대 8비트로 숫자, 몇 가지 특수문자, 알파벳 정의하므로 문자 코드 표에 정의되어 있지 않은 문자 표현 불가능하다. 이러한 문제를 해결하기 위해 세계 여러 나라의 언어를 통일된 방법으로 표현할 수 있 도록 정의한 국제 표준 코드(ISO/IEC 10646)
② 2바이트를 조합하여 하나의 글자를 표현하기 때문에 1바이트 코드로 표현할 수 없었던 다양한 언어를 표현함.
③ 유니코드 표 http://www.unicode.org
④ 초기 IBM 컴퓨터 시스템에서는 BCD 코드 -> EBCDIC코드 -> ASCII 코드 -> 유니코드로 일반화
⑤ XML, Java, CORBA 3.0, WML 등 인터넷 기반 프로그램과 제품에 사용
2. 논리자료의 표현
▶ 논리자료
- 논리자료 : 논리값을 표현하기 위한 자료 형식
- 논리값 : 참(True)와 거짓(False), 1과 0
1) 1바이트를 사용하여 논리자료를 표현하는 방법 3가지
- 참은 최하위 or 전체 or 하나이상의 비트를 1로, 거짓은 항상 전체 비트를 0으로 표기한다.
① 방법 1
- 참 : 최하위 비트를 1로 표시 00000001
- 거짓 : 전체 비트를 0으로 표시 00000000
② 방법 2
- 참 : 전체 비트를 1로 표시 11111111
- 거짓 : 전체 비트를 0으로 표시 00000000
③ 방법 3
- 참 : 하나 이상의 비트를 1로 표시 00000001 or 00000100 ……
- 거짓 : 전체 비트를 0으로 표시 00000000
3. 포인터자료의 표현
▶ 포인터자료
- 메모리의 주소를 표현하기 위한 자료 형식
- 변수의 주소나 메모리의 특정 위치에 대한 주소를 저장하고 주소 연산하기 위해 사용
4. 문자열자료의 표현
▶ 문자열(String)자료
여러 문자로 이루어진 문자의 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 저장하는 자료 형식
1) 하나의 문자열 자료에 포함된 부분문자열을 표현하는 방법
① 방법 1 : 부분 문자열 사이에 구분자를 사용하여 저장함.
② 방법 2 : 가장 긴 문자열의 길이에 맞춰 고정 길이로 저장함.
③ 방법 3 : 부분 문자열을 연속하여 저장하고 각 부분 문자열에 대한 포인터를 사용함.
2) 문자열표현 3가지 방법의 메모리 이용률과 부분 문자열 탐색시간 비교
메모리 이용률 | 부분 문자열 탐색 시간 | |
구분자 사용 | 문자열 길이 + 구분자 길이 → 효율적 |
문자 비교 연산 시간 + 구분자 식별 시간 → 비효율적 |
고정 길이로 저장 | 가장 긴 부분 문자열 길이 X 부문 문자열의 개수 → 비효율적 |
문자 비교 연산 시간 → 효율적 |
포인터 사용 | 문자열 길이 + 포인터 저장 공간 → 효율적 |
문자 비교 연산 시간 + 포인터 주소 연산 시간 → 효율적 |
2022. 01. 07 수업내용 정리
v C로 배우는 쉬운 자료구조, 이지영, 한빛아카데미, pp.35~40