자료 구성의 단위
단위 | 설명 |
비트(Bit, Binary Digit) | - 0과 1을 표시하는 2진수 1자리 |
니블(Nibble) | - 4Bit로 구성되며, 16진수 1자리 표현하기에 적합 |
바이트(Byte) | - 8Bit로 구성되며, 영문자나 숫자 한글자는 1Byte, 한글, 한자 한글자는 2Byte - 8Bit = 28 = 256가지의 정보 표현 가능 - 주기억장치 자료표현의 최소 단위 |
워드(Word) | - CPU가 한 번에 처리할 수 있는 명령 단위 - 반워드(Half Word): 2Byte = 16Bit - 전워드(Full Word): 4Byte = 32Bit - 더블워드(Double Word): 8Byte = 62Bit |
필드(Field) | - 파일 구성의 최소 단위 |
레코드(Record) | - 하나 이상의 필드가 모여서 구성 - 논리 레코드(Logical Record)와 동일 |
블록(Block) | - 하나 이상의 레코드가 모여서 구성 - 물리 레코드(Physical Record)와 동일 |
파일(File) | - 여러 레코드가 모여서 구성 - 프로그램 구성 의 기본 단위 |
데이터베이스(Database) | - 여러 파일(File)의 집합 - 관계형, 계층형, 망형 |
- 크기 : 비트 < 니블 < 바이트 < 반워드 < 전워드 < 더블워드 < 필드 < 레코드(논리 레코드) < 블록(물리 레코드) < 파일 < 데이터페이스
수의 표현 및 진법 변환
진법의 개념 및 종료
- 2진법(Binary): 0과 1 두 개의 숫자로 표현
- 8진법(Octal): 0~7까지의 숫자로 표현, 8진수 1자리 = 2진수 3자리
- 16진법(Hexadecimal): 0~9까지의 숫자와 10~15를 의미하는 A~F 문자로 표현, 16진수 1자리 = 2진수 4자리
- 10진법(Decimal): 0~9 숫자로 표현
10진수 -> 2진수, 8진수, 16진수 변환
- 10진수의 정수 부분은 변환하려는 진수로 나누어지지 않을 때까지 나누어 나머지를 역순으로 나열,
- 소수 부분은 변환하려는 진수로 소수 부분이 0이 될때까지 곱하여 몪을 순서대로 나열
- ex) 10진수 47.625를 2진수로 변환 -> 정수 부분을 2로 나누고, 소수 부분을 2를 곱하여 변환 -> 101111.101
- 10진수 -> 8진수 변환은 정수 부분을 8로 나누고, 소수 부분을 8을 곱하여 변환
- 10진수 -> 16진수 변환은 정수 부분을 16로 나누고, 소수 부분을 16을 곱하여 변환
2진수, 8진수, 16진수 -> 10진수 변환
- 정수 부분과 소수 부분을 나누어 변환하려는 각 진수의 자릿값과 자리의 지수승을 곱한 결과값을 모두 더하여 계산
- 정수 부분의 지수승은 0부터 증가, 소수 부분의 지수승은 -1씩 감소
- ex) 2진수 101111.101을 10진수로 변환 -> 각 자리값과 자리의 2의 지수승을 곱하고 모두 더하여 계산 -> 47.625
- 8진수 -> 10진수 변환은 각 자리값과 자리의 8의 지수승을 곱하고 모두 더하여 계산
- 16진수 -> 10진수 변환은 각 자리값과 자리의 16의 지수승을 곱하고 모두 더하여 계산
2진수 -> 8진수, 16진수
- 8진수로 변환 시 정수 부분은 소수점 기준 왼쪽 방향으로 3자리 씩, 소수 부분은 오른쪽 방향으로 3자리씩 변환(2진수 -> 10진수)
- 16진수로 변환 시 정수 부분은 소수점 기준 왼쪽 방향으로 4자리 씩, 소수 부분은 오른쪽 방향으로 4자리씩 변환(2진수 -> 10진수)
- 소수 부분의 모자른 자리수는 0으로 채움
- ex) 2진수 111001011.10101을 8진수로 변환 -> 713.52
8진수, 16진수 -> 2진수
- 8진수를 변환 시 1자리를 2진수 3자리로, 16진수를 변환 시 1자리를 4자리로 변환 (10진수 -> 2진수)
- ex) 8진수 713.52를 2진수로 변환 -> 111001011.10101
8진수 <-> 16진수
- 8진수를 16진수로 변환 시 2진수로 변환 후 16진수로 변환 (8진수 -> 2진수 -> 16진수)
- 16진수를 8진수로 변환 시 2진수로 변환 후 8진수로 변환 (16진수 -> 2진수 -> 8진수)
보수
컴퓨터가 수행하는 덧셈 연상을 이용하여 뺄셈을 수행하기 위해 사용
10진법에는 10의 보수, 9의 보수 존재, 2진법에는 2의 보수, 1의 보수 존재
10의 보수
보수를 구할 숫자에 자리수 만큼 0으로 채우고 가장 왼쪽에 1을 추가하여 기준
- ex) 33에 10의 보수는? -> 67
- 33 + x = 100 (1 + 33의 자리수는 2 -> 00)
- x = 100 - 33
- x = 67
9의 보수
보수를 구할 숫자에 자리수 만큼 9로 채워 기준
- ex) 33에 9의 보수는? -> 66
- 33 + x = 99 (1 + 33의 자리수는 2 -> 99)
- x = 99 - 33
- x = 66
2의 보수
1의 보수를 구해 1을 더함
- ex) 10101에 2의 보수는? -> 01011
- 10101의 1의 보수 -> 01010
- 01010 + 1 = 01011
- ex) 01100에 2의 보수는? -> 10100
- 01100의 1의 보수 -> 10011
- 10011 + 1 = 10100
1의 보수
주어진 각 자릿값의 보수(NOT)값으로 변환
- ex) 10101에 1의 보수는? -> 01010
자료의 내부적 표현
컴퓨터 내부의서 연산을 하거나 데이터를 처리할 때 사용
10진 연산
10진수 1자리를 2진수 4자리로 변환
언팩(Unpack) 연산(=존 10진 형식)
1Byte(8Bit)로 10진수 1자리를 표현, 연산이 불가하여 입출력에 사용
4개의 존(Zone)과 4개의 숫자(Digit)로 표현, 마지막 존 부분은 부호로 사용 (부호 없음=F, 양수=C 또는 F, 음수=D)
팩(pack) 연산
1Byte(8Bit)로 10진수 2자리를 표현, 연산 가능
존(Zone)이 없이 숫자(Digit)로 표현, 마지막 4Bit를 부호로 사용 (부호 없음=F, 양수=C 또는 F, 음수=D)
2진 연산
2진 정수 데이터 표현에 사용, 10진수의 전체 값을 2진수로 변환
표현할 수 있는 범위가 작지만 연산 속도가 빠름
첫 번째 Bit를 부호로 사용 (양수=0, 음수=1)
양수 표현 방식
- 10진수를 2진수로 변환
음수 표현 방식
- 부호화 절대치: 음수의 절대값(10진수)을 2진수로 표현한 후 부호 비트만 1로 변경
- 부호화 1의 보수 방식: 음수의 절대값(10진수)을 2진수로 표현한 후 1의 보수로 변환
- 부호화 2의 보수 방식: 음수의 절대값(10진수)을 2진수로 표현한 후 2의 보수로 변환(1의 보수 + 1)
부동 소수점 연산
실수 데이터 표현과 연산에 사용, 고정 소수점 연산(2진 연산, 10진 연산)에 비해 실행 시간이 많이 걸리나 매우 큰 수나 매우 작은 수를 표현하는데 적합
부호(1Bit), 지수부(7Bit), 가수부(소수부)로 나누어 표현
자료의 외부적 표현
BCD(Binary Code Decimal, 2진화 10진 코드)
6Bit 코드로 1개의 문자를 2개(2Bit)의 존(Zone)과 4개(4Bit)의 Digit 비트로 표현
6Bit = 26 = 64가지 문자 표현 가능, 영문 소문자는 표현하지 못함
ASCII 코드(American Standard Code for Information Interchange)
7Bit 코드로 1개의 문자를 3개(2Bit)의 존(Zone)과 4개(4Bit)의 Digit 비트로 표현
7Bit = 27 = 128가지 문자 표현 가능, 마이크로컴퓨터의 기본 코드로 사용
EBCDIC(Extended BCD Interchange Code, 확장 2진화 10진 코드)
8Bit 코드로 1개의 문자를 4개(2Bit)의 존(Zone)과 4개(4Bit)의 Digit 비트로 표현
8Bit = 28 = 256가지 문자 표현 가능, 대형 컴퓨터에서 사용
기타 자료의 표현 방식
BCD 코드 (8421 코드)
10진수 1자리의 수를 2진수 4Bit로 표현, BCD에서 Zone Bit를 생략한 형태, 대표적인 가중치 코드
4Bit의 2진수 각 Bit가 8(22), 4(22), 2(21), 1(20)의 자리값을 가지므로 8421 코드라고도 불림
- ex) 6(10진수) Excess-3 코드로 표현
- 6(10진수) -> 2진수로 변환 -> 0110
- 0110 + 3(11) -> 1001
Excess-3 코드 (3 초과 코드)
BCD 코드에 3(10진수)을 더하여 만든 코드, 대표적인 자기 보수 코드이며, 비가중치 코드
- ex) 6(10진수) Excess-3 코드로 표현
- 6(10진수) -> 2진수로 변환 -> 0110
- 0110 + 3(11) -> 1001
Gray 코드
BCD 코드에 XOR을 연산하여 만든 코드, 비가중치 코드
1Bit만 변하기 때문에 하드웨어적인 오류가 적어 하드웨어 동작 제어에 적합, 아날로그-디지털 변환, 데이터 전송(입출력장치)에 주로 사용
2진수 -> Gray 코드 변환
- 첫 번째 2진수 1Bit는 그대로 내려쓴다.
- 두 번째 2진수 Bit 부터는 이전 Bit와 XOR 연산하여 내려쓴다.
ex) 2진수 1011을 Gray 코드로 변환
Gray 코드 -> 2진수 변환
- 첫 번째 2진수 1Bit는 그대로 내려쓴다.
- 두 번째 2진수 Bit 부터는 이전에 내려쓴 값과 XOR 연산하여 내려쓴다.
ex) Gray 코드 1110을 2진수로 변환
패리티 검사 코드(Parity Check Code)
코드의 오류를 검사하기 위해 사용, 1Bit의 패리티 체크 비트를 추가하기 때문에 1Bit의 오류만 검출 가능
1의 개수의 따라 Odd(기수) 패리티, Even(우수) 패리티로 구분
Odd Parity(기수 패리티)
1인 비트의 수가 홀수가 되도록 0이나 1을 추가
- ex) 10100001과 11100010에 홀수 패리티는?
- 10100001 -> 1의 개수가 홀수이므로 0을 추가 -> 101000010
- 11100010 -> 1의 개수가 짝수이므로 1을 추가 -> 111000101
Even Parity(우수 패리티)
1인 비트의 수가 짝수가 되도록 0이나 1을 추가
- ex) 10100001과 11100010에 짝수 패리티는?
- 10100001 -> 1의 개수가 홀수이므로 1을 추가 -> 101000011
- 11100010 -> 1의 개수가 짝수이므로 0을 추가 -> 111000100
💡 외우기
Even -> 4글자 짝수 -> 짝짝꿍이 잘 맞아 우수함
Odd -> 3글자 홀수 -> 기수
해밍 코드(Hamming Code)
오류를 스스로 검출하여 교정이 가능한 코드, 2Bit의 오류를 검출할 수 있고, 1Bit의 오류를 교정 가능
2n번째는 오류 검출을 위한 패리티 비트(1, 2, 4, 8, 16 ... 2n)
ex) 다음 해밍코드 1011011의 패리티 비트는? -> 1번째 1, 2번째 0, 4번째 1
코드의 분류
분류 | 코드 종류 |
가중치 코드 (Weight Code) |
BCD(8421), 2421, 84-2-1, Biquinary(5043210), 51111, Ring-Counter(9876543210) |
비가중치 코드 (Non-Weight Code) |
Excess-3, Gray, Jonson, 2-out-of-5, 3-out-of-5 |
자기 보수 코드 Self-Complement Code) |
Excess-3, 2421, 51111, 84-2-1 |
오류 검출용 코드 | 해밍 코드, 패리티 검사 코드, Biquinary(5043210), Ring-Counter(9876543210), 2-out-of-5, 3-out-of-5 |
'자격증' 카테고리의 다른 글
정보처리기능사 - 6. 데이터베이스 활용 (0) | 2025.03.16 |
---|---|
정보처리기능사 - 5. 입출력 제어 및 기억장치 (0) | 2025.03.16 |
정보처리기능사 - 4. 명령어 및 제어 (0) | 2025.03.15 |
정보처리기능사 - 2. 논리회로 (0) | 2025.03.13 |
정보처리기능사 - 1. 컴퓨터 시스템의 구성 (0) | 2025.03.13 |