1강. 수 체계와 코드(number system and codes)
추천글 : 【논리설계】 논리설계 목차
1. 수 체계 [본문]
2. 코드 [본문]
3. 사칙연산 [본문]
1. 수 체계(number system) [목차]
⑴ 종류 1. positive-value system
① 각 자릿수에 따라 크기가 결정되는 방식
② 최대유효숫자(MSD, most significant digit)
③ 최소유효숫자(LSD, least significant digit)
⑵ 종류 1-1. 10진수(decimal number system)
① 각 자리는 10의 지수승과 관련. 0 ~ 9까지의 수를 사용
② 예시 : 2134 = 2 × 103 + 1 × 102 + 3 × 101 + 4 × 100
⑶ 종류 1-2. 2진수(binary number system)
① 각 자리는 2의 지수승과 관련. 0과 1을 사용
② N개의 자리로 0 ~ 2N-1까지 표현할 수 있음
③ binary-to-decimal conversion
④ decimal-to-binary conversion
○ 방법 1.
○ 방법 2.
⑷ 종류 1-3. 8진수(octal number system)
① 각 자리는 8의 지수승과 관련. 0 ~ 7까지의 수를 사용
② octal-to-binary conversion : 각 자릿수마다 독립적으로 전환 가능
472(8) = 100 111 010(2)
③ binary-to-octal conversion
11010.1011(2) = 32.54(8)
⑸ 종류 1-4. 16진수(hexadecimal number system)
① 각 자리는 16의 지수승과 관련. 0 ~ 9와 A, B, C, D, E, F를 사용
② hex-to-decimal conversion
2AF(16) = 2 × 162 + 10 × 161 + 15 × 160 = 687(10)
③ decimal-to-hex conversion
④ binary-to-hex conversion
1011 1010 0110(2) = BA6(16)
⑹ 종류 2. 고정 소수점(fixed-point number)
① 종류 2-1. sign-magnitude system
○ 가장 왼쪽에 있는 비트가 부호 비트(sign bit)
○ +0과 -0이 공존하므로 프로그램에서 에러가 발생할 수 있음
② 종류 2-2. 1의 보수 시스템(1's complement system)
○ 예시
○ +0과 -0이 공존하므로 사칙연산이 불완전함
○ +0 : 00···0
○ -0 : 11···1
③ 종류 2-3. 2의 보수 시스템(2's complement system)
○ 정의 : 계산의 편의성을 위해 음의 이진수를 표시할 때 sign bit를 도입하고 특수한 방법으로 수를 표시함
○ 양수를 2의 보수로 표현된 음수로 전환하는 과정
○ 2의 보수로 표현된 음수를 양수로 전환하는 과정
○ 방법 1. 2의 보수로 표현된 수에서 1을 뺀 뒤 1의 보수를 취하기
○ 방법 2. 2의 보수로 표현된 수에서 1의 보수를 취한 뒤 1을 더하기
○ 방법 1과 방법 2가 동등함을 쉽게 증명할 수 있음 (∵ 수학적 귀납법)
○ 7자리 이진수로 -128, ···, 1, 0, ···, 127을 표현할 수 있음
○ 1000000(2) = -128인 이유 : (주석) 나름대로 이해한 방식
⑺ 종류 3. 부동 소수점(floating-point number)
① 종류 3-1. single-precision floating-point binary number : 32 bit로 구성
○ sign bit가 1비트, exponent가 8비트, fraction이 23비트임
○ number = (-1)s (1+F) 2E-127
○ 예시
S | E | F |
1 | 10010001 | 10001110001000000000000 |
② 종류 3-2. double-precision floating-point binary number : 64 bit로 구성
○ sign bit가 1비트, exponent가 8비트, fraction이 55비트임
○ number = (-1)s (1+F) 2E-127
2. 코드(codes) [목차]
⑴ 코드의 표현
① 비트(bit) : 이진수 한 자리씩 입출력하는 것
② 니블(nibble) : 1 nibble = 4 bit
③ 바이트(byte) : 1 byte = 8 bit
KB | 킬로바이트 | 1 KB = 103 Bytes = 210 Bytes |
MB | 메가바이트 | 1 MB = 106 Bytes = 220 Bytes |
GB | 기가바이트 | 1 GB = 109 Bytes = 230 Bytes |
TB | 테라바이트 | 1 TB = 1012 Bytes = 240 Bytes |
PB | 페타바이트 | 1 PB = 1015 Bytes = 250 Bytes |
EB | 엑사바이트 | 1 EB = 1018 Bytes = 260 Bytes |
ZB | 제타바이트 | 1 ZB = 1021 Bytes = 270 Bytes |
YB | 요타바이트 | 1 YB - 1024 Bytes = 280 Bytes |
Table. 1. 데이터의 양을 측정하는 단위
○ 암기 팁 1. 엑사바이트는 페타바이트에서 exceed 한 것...
○ 암기 팁 2. 제타바이트는 엑사바이트에서 한 칸 더 넘어야 하므로 알파벳의 마지막인 Z를 부여
○ 암기 팁 3. 요타바이트는 제타바이트 이상의 단위가 필요해 Z와 붙어있는 알파벳인 Y를 부여
⑵ 종류 1. BCD(binary coded decimal) : 8421 코드라고도 함
① 예시
137 = 0001 0011 0111(2)
0.6 = 0000.0110(2)
② (구별개념) straight binary coding
137 = 10001001(2)
0.6 = 0.1001100110001···(2)
③ 장점 : straight binary coding과 다르게 소수점 절삭 에러 (round error) 없음
④ 단점
○ 1010, 1011, 1100, 1101, 1110, 1111 등 6개가 쓰이지 않음
○ 표현이 긺. 연산이 복잡 → 수치 계산이 많지 않은 상업적 프로그램에서 많이 사용
○ (참고) 많은 계산을 요하는 수학적, 과학적 계산에는 일반 이진수가 사용됨
⑶ 종류 2. EBCDIC(extended BCD interchange code)
⑷ 종류 3. 그레이 코드(gray code)
① 정의 : 00, 01, 11, 10, 00, ···과 같이 순환하는 수열. unweighted code의 일종
② 최소 변환 코드(minimum-change code) : 기존 수에서 다음 수로 넘어갈 때 오직 1 bit씩 바뀜
③ BCD-to-gray code conversion
10110(2) → 11101(gray)
○ 가장 먼저 나오는 수가 1이므로 gray code 또한 1로 시작함
○ 첫 번째 두 개의 수가 1과 0이므로 이들의 xor 연산 결과인 1이 그다음으로 옴
○ 두 번째 두 개의 수가 0과 1이므로 이들의 xor 연산 결과인 1이 그 다음으로 옴
○ 세 번째 두 개의 수가 1과 1이므로 이들의 xor 연산 결과인 0이 그 다음으로 옴
④ gray code-to-BCD conversion
11011(gray) → 10010(2)
○ 가장 먼저 나오는 수가 1이므로 BCD 또한 1로 시작함
○ 앞의 1과 gray code 두 번째 수인 1의 xor 연산 결과인 0이 그 다음으로 옴
○ 앞의 0과 gray code 세 번째 수인 0의 xor 연산 결과인 0이 그 다음으로 옴
○ 앞의 0과 gray code 네 번째 수인 1의 xor 연산 결과인 1이 그 다음으로 옴
○ 앞의 1과 gray code 다섯 번째 수인 1의 xor 연산 결과인 0이 그 다음으로 옴
⑤ (참고) rotary encoder
○ rotary encoder에는 shaft로 연결된 회전판이 있음 (왼쪽 그림)
○ 빛을 통과시키면 0, 통과시키지 못하면 1로 인식하여 회전을 코드로 변환함
○ (주석) 세 개의 동심원의 높이가 달라서 특정 시선 방향에 대한 각 원의 코드를 읽을 수 있는 듯
○ 이진 코드를 그레이 코드로 변환할 때 사용함
⑥ 응용
○ 데이터의 전송 : 그레이 코드는 최소 변환 코드이므로 변환 시 에러를 최소화할 수 있음
○ analog-digital converter : 기계적 장치의 경우 그레이 코드와 같이 에러를 최소화하는 게 중요함
⑸ 종류 4. 패리티 비트(parity bit) : 에러 검출 비트라고도 함
① 도입 취지 : 전기적인 잡음으로 신호가 왜곡됨
② 종류 1. even parity bit : 0 | 1001011과 같이 1의 개수가 짝수가 되도록 함
③ 종류 2. odd parity bit : 1 | 1001011과 같이 1의 개수가 홀수가 되도록 함
④ 종류 3. 2차원 parity bit
(even parity check in row, even parity check in column)
⑹ 종류 5. 아스키(ASCII, American standard code for information interchange)
① 1986년 American National Standard Institute에서 제정
② 8 bit 코드 : 1 bit는 패리티 비트로 사용됨
③ 총 128개의 문자를 표현할 수 있음 : 대문자 26개, 소문자 26개, 자연수 10개, 특수기호 34개, 제어문자 32개
10진수 | ASCII | 10진수 | ASCII | 10진수 | ASCII | 10진수 | ASCII |
0 | NULL | 32 | SP | 64 | @ | 96 | ` |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | ' | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SOH | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DC1 | 49 | 1 | 81 | Q | 113 | q |
18 | SC2 | 50 | 2 | 82 | R | 114 | r |
19 | SC3 | 51 | 3 | 83 | S | 115 | s |
20 | SC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | ETB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | \ | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | _ | 127 | DEL |
Table. 2. 아스키 코드
⑺ 종류 6. 확장된 아스키 코드 (extended ASCII code) : parity bit가 없어 총 256개의 문자를 표현할 수 있음
⑻ 종류 7. 유니코드(unicode)
① 전 세계적으로 서용하는 모든 문자 조합을 하나로 모은 것 (예 : 한글)
② 기본적으로 2 byte로 사용
3. 사칙연산(arithmetic operation) [목차]
⑴ 덧셈(addition) : 양수 + 양수, 음수 + 음수의 경우
① 덧셈 시 하위 비트에서 carry가 발생함
② overflow의 위험이 있음
③ 예 1. binary 덧셈 : 덧셈기의 설계
④ 예 2. BCD 덧셈
Figure. 5. BCD 덧셈
답은 0001 0010 0000BCD임
○ 단계 1. 각 자리의 수를 더해 줌 : carry가 발생해도 다음 자리에 넘기지 않고 옆에다 작게 표시함
○ 단계 2. 낮은 자리부터 1010BCD 이상이면 0110BCD를 더해 줌 : carry가 발생해도 다음 자리에 넘기지 않음
○ 단계 3. 단계 2에서 발생한 carry를 천천히 정리함
⑤ 예 3. hexadecimal arithmetic addition : 각 자리의 덧셈이 16 이상이면 carry가 발생함
⑵ 뺄셈(subtraction) : 양수 + 음수의 경우
① 빼는 수의 2의 보수를 취한 뒤 빼어지는 수와 더함
② carry bit는 무시함
⑶ 곱셈(multiplication)
① 경우 1. 양수와 양수의 곱셈
○ 방법 1. 일일히 덧셈을 하는 방법
○ 방법 2. 십진수 곱셈 때 자릿수를 이용한 세로 연산을 하면 됨
○ (주석) 방법 2가 십진수에만 국한될 이유가 전혀 없음
② 경우 2. 임의의 곱셈
○ sign bit가 동일하면 결과는 양수이고 sign bit가 다르면 결과는 음수임
○ 0은 논외로 함
③ 곱셈기의 설계
⑷ 나눗셈(division)
① 경우 1. 양수와 양수의 나눗셈
○ 방법 1. 피제수를 제수로 일일히 빼는 방법
○ 방법 2. 십진수 나눗셈 때 자릿수를 이용한 세로 연산을 하면 됨
○ (주석) 방법 2가 십진수에만 국한될 이유가 전혀 없음
② 경우 2. 임의의 나눗셈
○ sign bit가 동일하면 결과는 양수이고 sign bit가 다르면 결과는 음수임
○ 0은 논외로 함
입력 : 2020.03.26 13:33
'▶ 자연과학 > ▷ 논리설계' 카테고리의 다른 글
【논리설계】 응용 : 7-Segment (24) | 2020.05.23 |
---|---|
【논리설계】 논리설계 응용 : 비교기 (0) | 2020.04.22 |
【논리설계】 논리설계 목차 (15) | 2019.04.07 |
【논리설계】 12강. 입력 및 출력 (0) | 2016.12.10 |
【논리설계】 11강. CPU (0) | 2016.12.10 |
최근댓글