본문 바로가기

Contact English

【논리설계】 1강. 수 체계와 코드

 

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의 일종

 

출처 : 이미지 클릭

Figure. 1. gray 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 

 

출처 : 서울대학교 마이크로프로세서 및 응용(조성인 교수님) 수업

Figure. 2. 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 

 

출처 : 이미지 클릭

Figure. 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개의 문자를 표현할 수 있음

 

출처 : 이미지 클릭

Figure. 4. 확장된 아스키 코드]

 

종류 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