• 검색 결과가 없습니다.

4장수의표현

N/A
N/A
Protected

Academic year: 2022

Share "4장수의표현"

Copied!
36
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

이산수학

4장. 수의 표현

이진수의 연산

1

(2)

이산수학

출처

본 강좌 자료는 이산수학 (2학년 / 3학점/ 3시간 / 이론) 수업에서 사용한 교재 [이산수학 (수학으로 이해하는 디지털 논리), 한빛

아카데미 출판사] 의 내용 등을 출처로 작성하였음을 알리는 바입니다.

2

(3)

이산수학

학습 목표

컴퓨터에서 데이터 표현 및 연산 이해

3

(4)

이산수학

학습 내용

컴퓨터의 산술 논리 연산장치

이진수와 십진수간의 변환 방법

이진수의 음수의 표현법

비트 확장

이진수의 덧셈, 뺄셈, 곱셈, 나눗셈 연산

실수의 부동소수점 표기법

4

(5)

이산수학

CPU의 산술 논리 연산장치 ALU의 구성요소

산술연산장치

+, −, ∗, / 등을 수행

■논리

연산 장치

AND, OR, NOT, XOR 등을 수행

■쉬프트 레지스터

비트들을 좌우측으로 이동

보수기

2진 데이터를 2의 보수로 변환

음수를 만드는 역할

■상태 레지스터

연산 결과의 상태를 나타내는 플래그들을 저장

5

(6)

이산수학

10진법

10진수(Decimal number)

기수를 10으로 하는 수 체계

0~9의 10개 기호와 10의 승수(10𝑛) 를이용해 수를 표현

정수 𝑛 에 대해 𝑘 > 0, 0 ≤ 𝑎0, 𝑎𝑘≤ 9

𝑛10 = 𝑎𝑘𝑎𝑘−1 … 𝑎1𝑎0 = 𝑎𝑘10𝑘 + 𝑎𝑘−110𝑘−1+…+𝑎1101+𝑎0100

실수 𝑛 에 대해

𝑛10 = 𝑎𝑘𝑎𝑘−1 … 𝑎1𝑎0. 𝑎−1𝑎−2…𝑎−𝑙𝑎−(𝑙+1)

= 𝑎𝑘10𝑘 + 𝑎𝑘−110𝑘−1+…+𝑎1101+𝑎0100 + 𝑎−110−1 + 𝑎−210−2+…+𝑎𝑙10𝑙+𝑎−𝑙10−𝑙 + 𝑎−(𝑙+1)10−(𝑙+1)+…

6

(7)

이산수학

예제

다음 10진수를 기수와 자릿수를 이용해 전개하시오. 523.156810 (풀이)

523.621810 =

5 × 102+2× 101+3 × 100+6× 10−1+2× 10−2+1× 10−3+8× 10−4

7

(8)

이산수학

2진법

2진수 (Binary number)

기수를 2로 하는 수 체계

0과 1의 2개 기호와 2의 승수(2𝑘)를 이용해 수를 표현

정수 𝑛 에 대해 (𝑘 > 0, 𝑎0 , 𝑎𝑘 = 1 𝑜𝑟 0)

𝑛2 =𝑎𝑘𝑎𝑘−1… 𝑎1𝑎0= 𝑎𝑘2𝑘+ 𝑎𝑘−12𝑘−1+…+ 𝑎121+ 𝑎020

실수 𝑛 에 대해 (𝑘, 𝑙 ≥ 0, 𝑎 = 1 𝑜𝑟 0) 𝑛2 =𝑎𝑘𝑎𝑘−1… 𝑎1𝑎0. 𝑎−1 𝑎−2 … 𝑎−𝑙𝑎− 𝑙+1

= 𝑎𝑘2𝑘+ 𝑎𝑘−12𝑘−1+…+ 𝑎121+ 𝑎020+ 𝑎−12−1+ 𝑎−22−2 + ⋯ + 𝑎−𝑙2−𝑙+𝑎−(𝑙+1)2−(𝑙+1)+…

8

(9)

이산수학

예제

다음 2진수를 기수와 자릿수를 이용해 전개하시오.

10001.0011012 (풀이)

10001.0011012 = 1 × 24+ 1 × 21 + 1 × 2−3 +1 × 2−4 +1 × 2−6

9

(10)

이산수학

8진법

8진수 (Octal number)

기수를 8로 하는 수 체계

0~7의 8개 기호와 8의 승수(8𝑘)를 이용해 수를 표현

정수 𝑛 에 대해 (𝑘 > 0, 0 ≤ 𝑎0 , 𝑎𝑘 ≤ 7)

𝑛8 =𝑎𝑘𝑎𝑘−1… 𝑎1𝑎0= 𝑎𝑘8𝑘+ 𝑎𝑘−18𝑘−1+…+ 𝑎181+ 𝑎080

실수 𝑛 에 대해 (𝑘, 𝑙 > 0, 0 ≤ 𝑎0 , 𝑎𝑘, 𝑎𝑙 ≤ 7 ) 𝑛8 =𝑎𝑘𝑎𝑘−1… 𝑎1𝑎0. 𝑎−1 𝑎−2 … 𝑎−𝑙𝑎− 𝑙+1

= 𝑎𝑘8𝑘+ 𝑎𝑘−18𝑘−1+…+ 𝑎181+ 𝑎080+ 𝑎−18−1+ 𝑎−28−2 + ⋯ + 𝑎−𝑙8−𝑙+𝑎−(𝑙+1)8−(𝑙+1)+…

10

(11)

이산수학

예제

다음 8진수를 기수와 자릿수를 이용해 전개하시오.

712.32518 (풀이)

712.32518 =

7 × 82 +1 × 81 +2 × 80+3 × 8−1 +2 × 8−2 +5 × 8−3 +1 × 8−4

11

(12)

이산수학

16진법

16진수 (Hexadecimal Number)

기수를16으로 하는 수 체계

0~9와 A, B, C, D, E, F의 16개 기호와 16의 승수(16𝑘) 사용

컴퓨터는 8비트, 16비트, 32비트 단위로 데이터 처리

정수 𝑛 에 대해 (𝑘 > 0, 0 ≤ 𝑎0 , 𝑎𝑘 ≤ 9 , 𝐴 ≤ 𝑎0 , 𝑎𝑘 ≤ 𝐹) 𝑛16 = 𝑎𝑘 𝑎𝑘−1… 𝑎1𝑎0 = 𝑎𝑘16𝑘+ 𝑎𝑘−116𝑘−1+…+ 𝑎1161+ 𝑎0160

실수 𝑛 에 대해 (𝑘, 𝑙 > 0, 0 ≤ 𝑎0 , 𝑎𝑘, 𝑎𝑙 ≤ 9 , 𝐴 ≤ 𝑎0 , 𝑎𝑘, 𝑎𝑙 ≤ 𝐹) 𝑛16 =𝑎𝑘𝑎𝑘−1… 𝑎1𝑎0. 𝑎−1 𝑎−2 … 𝑎−𝑙𝑎− 𝑙+1

= 𝑎𝑘16𝑘 + 𝑎𝑘−116𝑘−1 + ⋯ + 𝑎1161+ 𝑎0160+

𝑎−116−1+𝑎−216−2 + ⋯ + 𝑎−𝑙16−𝑙+𝑎−(𝑙+1)16−(𝑙+1)+…

12

(13)

이산수학

예제

다음 16진수를 기수와 자릿수를 이용해 전개하시오.

9𝐵. 𝐹𝐸316 (풀이)

9𝐵. 𝐹𝐸316 =9 × 161 +𝐵 × 160 +𝐹 × 16−1+E × 16−2 +3 × 16−3 =9 × 161 +11 × 160 +15 × 16−1+14 × 16−2 +3 × 16−3

13

(14)

이산수학

진법 변환 관계

8진수

16진수

2진수 10진수

14

(15)

이산수학

10진수의 (2진수 | 8진수 | 16진수) 변환

정수부

기수로 몫이 0이 나올 때까지 나누어 얻은 나머지를 나열

가장 처음에 얻은 나머지는 최하위 자리(가장 오른쪽 자리)위치

가장 나중에 얻은 나머지는 최상위 자리(가장 왼쪽 자리) 위치

실수부

실수부를 기수로 곱하여 실수부가 0이 되거나 반복되는 수가 나올 때까지 곱하기를 반복한 후 곱해 얻은 정수부의 값을 순서대로 나열

가장 처음에 얻은 정수부는 소수점에 가장 가까운 자리에 위치

가장 나중에 얻은 정수부는 소수점에 가장 멀리 있는 자리 위치

15

(16)

이산수학

예제

다음 십진수(13.625)10를 이진수로 변환하시오.

(풀이)

(1) 13을 이진수로 변환 (13)10 = (1101)2

(2) 0.625의 이진수 변환 (0.625)10 = (0.101)2

(3) (13.625)10 = (1101)2 + (0.101)2 = (1101.101)2

16

(17)

이산수학

2진수와 8진수의 변환

2진수 ⇒ 8진수

주어진 2진수를 소수점 기준으로 각 세 자리 단위로 그룹화 후 10진수로 변환

8진수 ⇒ 2진수

8진수의 각 자리를 세 자리의 2진수로 변환

17

(18)

이산수학

예제

다음 2진수 11100101.01001111012을 8진수로 변환하라.

(풀이) 소수점을 기준으로 정수부와 실수부를 별개로 하여 각각 세 자리 단위의 블록을 만든다.

011 100 101 . 010 011 110 100

① ② ③ ④ ⑤ ⑥ ⑦

① 011 = 0 × 22 + 1 × 21 + 1 × 20 = 0 + 2 + 1 = 3

② 100 = 1 × 22 + 0 × 21 + 0 × 20 = 4 + 0 + 0 = 4

101 = 1 × 22 + 0 × 21 + 1 × 20 = 4 + 0 + 1 = 5

010 = 0 × 22 + 1 × 21 + 0 × 20 = 0 + 2 + 0 = 2

011 = 0 × 22 + 1 × 21 + 1 × 20 = 0 + 2 + 1 = 3

110 = 1 × 22 + 1 × 21 + 0 × 20 = 4 + 2 + 0 = 6

100 = 1 × 22 + 0 × 21 + 0 × 20 = 4 + 0 + 0 = 4

11100101.01001111012=345.23648

18

(19)

이산수학

2진수와 16진수의 변환

이진수에서 십진수로 변환하고 다시 16진수로 변환

먼저 이진수를 4비트 단위로 그룹화

각각의 4비트들을 10진수로 변환

16진수로 변환

16진수에서 10진수로 변환하고 다시 이진수로 변환

16진수의 각각의 자리 별로 십진수로 변환

십진수는 각각 4비트의 이진수로 변환

19

(20)

이산수학

예제

2진수 11100101.01001111012을 16진수로 변환하라.

(풀이) 소수점을 기준으로 정수부와 실수부를 별개로 하여 각각 네 자리 단위의 블록을 만든다.

①1110 = 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 8 + 4 + 2 + 0 = 14 = E

②0101 = 0 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 0 + 4 + 0 + 1 = 5

③0100 = 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 0 + 4 + 0 + 0 = 4

④1111 = 1 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = 8 + 4 + 2 + 1 = 15 = F

⑤0100 = 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 0 + 4 + 0 + 0 = 4

∴11100101.01001111012=𝐸5.4𝐹416

1110 0101 . 0100 1111 0100

① ② ③ ④ ⑤

20

(21)

이산수학

𝒓진수의 보수 (𝒓 = 𝟏𝟎 또는 2)

이진수의 음수 표현 방법

보수(Complementary Number)

𝑟진수에서 두 종류의 보수가 존재

𝑟의 보수와 (𝑟 − 1)의 보수

보수의 종류

이진수에서는 1의 보수와 2의 보수가 존재

십진수에서는 9의 보수와 10의 보수가 존재

21

(22)

이산수학

2진수의 1의 보수

𝑛자리수의 이진수 𝑁 에 대한 1의 보수 (2𝑛−1) − 𝑁

이진수에서 1의 보수

2𝑛 : 1과 뒤이은 𝑛 개의 0으로 구성

2𝑛 − 1 : 𝑛 개의 1로 구성

1의 보수 : 𝑁에 대한 각 자리의 숫자를 각각의 1에서 뺀 것과 같다.

22

(23)

이산수학

예제

다음 (1011001)2에 대한 1의 보수를 계산하시오.

(풀이)

𝑟 =2, 𝑛 =7, 𝑁 =1011001 27 -1 =1111111

(27 -1)- 𝑁 = 1111111– 1011001 = 0100110

23

(24)

이산수학

2진수의 2의 보수

𝑛자리수의 이진수 𝑁 에 대한 2의 보수 2𝑛 − 𝑁

이진수의 1의 보수에 1을 더한다.

2𝑛 − 𝑁 = 2𝑛 − 1 − 𝑁 + 1

24

(25)

이산수학

예제

다음 (101100)2에 대한 2의 보수를 계산하시오.

(풀이)

(1) 1의 보수 계산

𝑟 =2, 𝑛 =6, 𝑁 =101100 26 -1 =111111

(26 -1)- 𝑁 = 111111– 101100 = 010011 (2) 2의 보수

[(26 -1)- 𝑁] + 1 = 010011+1=010100

25

(26)

이산수학

컴퓨터의 데이터 표현 범위

2의 보수로 표현된 𝑛 비트 데이터의 경우에서 표현 할 수 있는 수의 범위:

−2𝑛−1≤ 𝑁 ≤ 2𝑛−1 −1

비트에 따른 수의 범위와 최대값과 최소값의 표현

8비트 2의 보수 : -128 ≤ 𝑁 ≤ +127

16비트 2의 보수 : -32768 ≤ 𝑁 ≤ +32767

부호가 존재하는 8비트 이진수의 표현에서 표현할 수 있는 십진수의 범위

부호화-절대치 표현: -(27 -1)≤ 𝑁 ≤ +(27 -1)

1의 보수: -(27 -1)≤ 𝑁 ≤ +(27 -1)

2의 보수: -27 ≤ 𝑁 ≤ +(27 -1)

26

(27)

이산수학

2의 보수로 표현된 이진수(𝒏비트)의 10진수 변환

2의 보수로 표현된 양수(최상위 비트: 𝑎𝑛−1 = 0)의 십진수 변환 𝐴 = 𝑎𝑛−2 × 2𝑛−2 + 𝑎𝑛−3 × 2𝑛−3 + ... + 𝑎1 × 21 +𝑎0 × 20

2의 보수로 표현된 음수(최상위 비트: 𝑎𝑛−1 = 1)의 십진수 변환 𝐴 = -1 × 2𝑛−1 +𝑎𝑛−2 × 2𝑛−2 + 𝑎𝑛−3 × 2𝑛−3 + ... + 𝑎1 × 21 +𝑎0 × 20

27

(28)

이산수학

예제

다음 8비트를 사용하여 2의 보수로 표현된 101011102 을 10진수로 변환하시오.

(풀이)

10101110 = - 128 + (1 × 25 + 1 × 23 + 1 × 22 + 1 × 21) = - 82

28

(29)

이산수학

비트확장

부호가 있는 데이터의 비트 수를 늘리는 연산

8비트 데이터를 16비트 데이터로 확장하는 경우

2의 보수 표현

확장된 상위 비트들을 부호 비트와 같은 값으로 채운다.

(예)

+21 = 00010101 (2의 보수, 8 비트)

+21 = 0000000000010101 (2의 보수, 16 비트) -21 = 11101011 (2의 보수, 8 비트)

-21 = 1111111111101011 (2의 보수, 16 비트)

29

(30)

이산수학

2의 보수에 의한 뺄셈 연산 (𝒏 bits 컴퓨터)

뺄셈 𝑀 − 𝑁 (𝑁 ≠ 0 )의 계산

◻ 피감수 M에, 감수 N에 대한 2의 보수화하여 결과적으로 덧셈을

이용

앞자리 올림수가 있는 경우 :

1.

자리 올림수를 무시

2.

얻은 결과가 음수인 경우 2의 보수를 취하고, 부호비트들 0으로 하고, 그 앞에 – 부호를 붙임

앞자리 올림수가 없는 경우:

1.

얻은 결과가 음수인 경우 2의 보수를 취하고, 부호비트들 0으로 하고, 그 앞에 – 부호를 붙임

30

(31)

이산수학

예제

8bits 컴퓨터에서 다음을 2의 보수를 이용해 연산하라.

3310 − 1510 (풀이)

(1) 3310 − 1510 = 3310 + −1510

(2) 2의 보수 표현:+3310= 00100001, −1510= 11110001.

(3) 이진수 덧셈

11 1 00100001 + 11110001 100010010

(4) 33

10 − 1510 = 3310 + −1510 = 00010010 =1 × 24 + 1 × 21 =18

무시

31

(32)

이산수학

예제

8bits 컴퓨터에서 다음을 2의 보수를 이용해 연산하라.

−3810 − 7010 (풀이)

(1) −3810 − 7010 = (−3810) + −7010

(2) 2의 보수 표현:−3810= 11011010, −7010= 10111010 (3) 이진수 덧셈

1111 1 11011010 + 10111010

110010100 ⇒ 결과가 음수

∴ −3810 − 7010 = 10010100 =−128 + (1 × 24 + 1 × 22) = −108

무시

32

(33)

이산수학

컴퓨터의 실수 데이터 표현 방식

컴퓨터 프로그래밍이나 전자계산기 등에서는 밑수가 10인 경우에 로마자 E 또는 e를 사용하여 표시

−0.4는 − 0.04𝐸 + 1 , −0.04𝑒 + 1, −4𝐸 − 1 , −4𝑒 − 1

부동소수점의 표현

소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수(假數)와 소수점의 위치를 풀이하는 지수(指數)로 나누어 표현

컴퓨터에서는 고정 소수점 방식보다 넓은 범위의 수를 나타낼 수 있어 과학기술 계산에 많이 이용

부동 소수점으로 표현한 수는 실수를 근사값으로 표현

33

(34)

이산수학

부동소수점 IEEE 754 표준

프로그래밍언어는 부동소수점의 실수에 대한 국제 표준을 준수

± 1. 𝑏𝑏𝑏𝑏 ⋯ 𝑏𝑏𝑏 × 2𝐸, where 𝐸 : 10진수, 𝑏: 2진수

(−1)𝑆(1 + 𝑀)2𝐸

부호비트(𝑆) : 𝑠 =0 (+), 𝑠 =1 (-)

지수(𝐸)필드 : 이진수로 표현

𝐸(지수) + 바이어스 상수 (2𝑛

/ 2 – 1 = 2

𝑛−1

– 1)

가수(𝑀 )필드: 유효숫자의 소수 부분 (𝑀)만 표현

단정밀도(32비트) 의 표현 영역: 10-38 ~ 1038

배정밀도(64비트)의 표현 영역: 10-308 ~ 10308

34

(35)

이산수학

실수를 IEEE 754 단정밀도로 표현

1. 실수를 이진수로 변환

2. 이진수를 정규화 변환 : (−1)𝑆(1 + 𝑀)2𝐸 3. 32-bits 시스템 표현

1. 𝑆 = 0 (+), 𝑆 = 1 (-)

2. 지수(𝐸)필드 : 𝐸(지수) + 127

3. 가수(𝑀 )필드: 유효숫자의 소수 부분 (𝑀)만 표현

(예제) 5.25=1.0101 × 22 ⇒ 𝑆 = 0, 𝐸 =2+127=10000000, M=01010000000…0 ∴ 01000000001010000000000000000000

35

(36)

이산수학

예제

32bits 컴퓨터에서 𝑓𝑙𝑜𝑎𝑡 𝑥 = −(13.625)10 을 부동소수점 IEEE 754로 표현하시오.

(풀이)

(1) (13.625)10= (1101.101)2 = 1.101101 × 23 (2) 단정밀도 형식으로 표시

- 부호(𝑆) 비트 = 1

- 지수(𝐸 )필드 = 3+127=00000011+ 01111111 = 1000 0010 - 가수(𝑀) 필드 = 10110100000000000000000

∴ 11000001010110100000000000000000

36

참조

관련 문서

[r]

금융건전성감독원과 금융시장감독원은 각각 금융건전성감독과 금융시장감독에 대한 정책수립과 감독검사업무를 수행하며 임 원의 임기가 보장된 무자본 특수법인으로

법인세법시행령 제87조 제1항에서의 특수관계인을 해석함에 있어서 당해 법인을 기준으로 하여 특수관계인에 해당하는지의 여부를 판정하여야 한다는 일방관계설과 당해

•기종마다 스페이서 블록을 만들어 다이얼의 위치 조정을 하지 않고 블록을 교환하는 것으 로 검사가 가능해짐. •기종별 스페이서 블록의

− 공극을 감소시키고 다짐이 좋으므로 밀도가 커진다.. − 시멘트

- 이러한 Aristoteles의 원리와 중세 기독교의 종교적 원리로 인하여 과학의 암흑기.. 우주 비행사 David Scott는 달에서 망치와 매의 깃털을 동시에 떨어뜨려 표면에

[r]

꽃씨를 심지 않은 부분은 전체의 얼마인지 분수로 나타내세요.. ❸ 꽃씨를 심지 않은 부분은 전체의