Presentation is loading. Please wait.

Presentation is loading. Please wait.

데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)

Similar presentations


Presentation on theme: "데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)"— Presentation transcript:

1 데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)
(2016 Spring) Prof. Jae Young Choi

2 정수 표현하기 컴퓨터의 기억 공간은 제한적이므로 한 정수를 나타낼 기억 영역도 제한적이다. 시스템에 따라 약간의 차이가 있지만, 대부분 32비트로 정수를 표현 컴퓨터에서 정수를 표현하는 방법은 2의 보수(2's complement) 표기법 32비트 정수 -5의 2의 보수 표현 과정

3 음수에 대한 2의 보수 표현 2의 보수 표현의 부호 비트 8비트의 2의 보수 표현 표현할 수 있는 수의 범위
[표 2-10] 8비트의 2의 보수표현 [표 2-9] 음수에 대한 2의 보수 표현 양수의 경우는 최상위 비트가 0이고, 음수의 경우에는 1임 2의 보수 표현에서 최상위 비트를 부호 비트라 함, 양수인 경우에는 0이되고 음수인 경우에는 1이 된다 2의 보수 표현의 부호 비트

4 정수의 덧셈과 뺄셈 정수의 덧셈 16비트로 정수를 표현한다고 가정 6 + 7 6 + (-7) 7 0000000000000111
[그림 2-30] 6과 7의 덧셈 7 [그림 2-31] 6과 -7의 덧셈 0은 1로, 1은 0으로 변환 1을 더함 -7

5 정수의 덧셈 (-6) + 7 30000 + 30000 (-6) + (-7) [그림 2-33] -6과 -7의 덧셈
[그림 2-32] -6과 7의 덧셈 10진수 -5536을 얻음, 이는 원하는 결과인 60000이 아님 올바른 결과가 나오지 않는 이유는 결과값이 16비트로 표현할 수 있는 최대값인 32767을 넘어섰기 때문 이처럼 저장할 영역이 부족해 올바르지 않은 결과가 나오는 현상을 오버플로우(overlfow)라 함 -5536 [그림 2-34] 30000과 30000의 덧셈

6 정수의 뺄셈 컴퓨터 내부에서의 뺄셈은 덧셈을 하는 하드웨어인 가산기를 이용 6 - 7 -6 - 7 -30000 – 30000
최상위 bit를 넘어가는 자리 올림수 1을 무시하면 5536이 되어 오버플로우 발생 -6 - 7 [그림 2-35] 6과 7의 뺄셈 [그림 2-36] -6과 7의 뺄셈 [-30000에서 30000의 뺄셈

7 이진수로 수를 표현하기 위해서는 0, 1, 부호 및 소수점을 이용 -13.62510 = -1101.1012
소수의 표현 이진수로 수를 표현하기 위해서는 0, 1, 부호 및 소수점을 이용 = 정수 표현 (Integer Representation) n비트의 2진수를 부호 없는 십진정수 A로 변환 A = an-1 × 2n-1 + an-2 × 2n a1 × 21 + a0 × 20 부호 없는 십진정수 A를 이진수로 변환하는 방법 연속적인 2의 나눗셈을 수행하면서 생성되는 나머지를 이용한다.

8 소수의 표현 소수점 이하의 십진수값을 이진수로의 표현 (13.625)10를 이진수로 변환 정수부분의 변환은 기존과 동일
소수점 이하의 십진수는 연속적으로 2곱셈 (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 = ( )2

9 유니버셜 게이트 (Universal Gate)
소수점을 포함하고 있는 이진수를 십진수로 변환하는 방법 정수부분은 기존의 방법과 같이 2의 승수를 이용 소수점 이하는 2의 (-)승수를 사용 A = an-1 × an-2 × a1 × 2-(n-1) + a0 × 2-n ( )2의 십진수로 변환 ( )2 = 1×23 + 1×22 + 0×21 + 1×20 + 1× × ×2-3 = = (13.625)10 23 22 21 20 . 2-1 2-2 2-3 1

10 실수 표현하기 소수점 부를 가지고 있는 수를 실수라 하는데. 실수로 컴퓨터 내부에서는 제한된 공간에 2진수 형태로 표현된다.
컴퓨터 내부에 실수를 표현할 때는 이런 지수 형식을 이용해, 4나 8바이트로 표현하는데, IEEE 754표준에는 다음과 같이 8비트 지수의 4바이트 형식인 단일 정밀도 형식과 11비트 지수의 8바이트 형식인 이중 정밀도 형식 두 가지로 정의 단 밑수는 2로 정해져 있어 표현할 필요가 없음

11 부동소수점 표현 (Floating-Point Representation)
고정소수점(fixed-point)표현 방식 = = 매우 큰 수 및 매우 작은 수의 표현이 불가능 부동소수점(floating-point)의 표현 과학적 표기의 지수(exponent)를 사용하여 소수점의 위치를 이동시킬 수 있는 표현 방법 표현의 범위가 확대 십진수에 대한 부동소수점 표현 예 176,000 = 1.76 × ,000 = 17.6 × 104 = 1.76 × = 17.6 × 10-5 지수 값에 의해 소수점이 이동하면서 아주 큰 수와 아주 작은 수를 표현할 수 있음

12 부동소수점 수(floating-point number)의 표현법 ± M × B± E
부동소수점 표현 부동소수점 수(floating-point number)의 표현법 ± M × B± E ±는 부호로서 + 혹은 –을 나타낸다. M은 가수(significand), B는 기수(base), E는 지수(exponent) 2진 부동소수점 수(binary floating-point number) 가수 M은 0과 1로 구성, 기수 B는 2 × 23 비트 수에 따른 분류 단일-정밀도(single-precision) 부동소수점 수 : 32비트 복수-정밀도(double-precision) 부동소수점 수 : 64 비트

13 부동소수점 표현 단일-정밀도 부동소수점 수 형식 필드에 비트할당 문제
부호 필드(S) 1비트, 지수필드(E) 8비트, 가수필드(M) 23비트 필드에 비트할당 문제 표현하는 수의 범위와 정밀도를 결정 부호 비트 0이면 양수이고 1이면 음수 지수 필드는 소수점이 이동해 얻어지는 지수 값을 저장 (8-bit때 256(=28 )개 표현 실질적인 값에 해당하는 가수 필드는 23-bit 이므로 8388,608(=223)개 표현 지수(E) 필드의 비트 수가 늘어나면, 소수점을 이동시키는 범위가 커져서 표현 가능한 수의 범위가 확장 가수(M) 필드의 비트 수가 늘어나면, 이진수로 표현할 수 있는 수가 많아져서 정밀도(precision)가 증가 31 S필드 지수(E) 필드 가수(M) 필드

14 정규화된 표현(normalized representation)
부동소수점의 수를 통일되게 표현하는 방법 ± 0.1bbb...b × 2E 정규화된 표현(normalized representation) 의 단일 정밀도 부동소수점의 수 배열 × 25 부호(S) 비트 = 0 지수(E) = 가수(M) = S필드 지수(E) 필드 가수(M) 필드

15 정규화된 표현(normalized representation)
부동소수점의 수를 통일되게 표현하는 방법 ± 0.1bbb...b × 2E 정규화된 표현(normalized representation) 의 단일 정밀도 부동소수점의 수 배열 × 25 부동 소수점 숫자에서 기수의 최상의 비트가 0이 아닌 경우에 정규화(normalized) 되었다고 함 정규화의 여부는 가수에서의 소수점 위치와는 관계없이 최상위 비트값에 의해서만 결정 예를 들어 8비트 이진수 은 정규화 되지 않았지만, 이것을 왼쪽으로 세 번 시프트한 은 정규화된 숫자임

16 바이어스된 지수값 지수 필드의 값은 양의 값뿐만 아니라 음의 값도 가짐  부호에 대한 표현이 필요 지수를 바이어스된(biased number)로 표현하면, 음수의 표현을 할 수 있음 예를 들어 지수값 4를 8비트의 2진수로 표현하면 이 되고 이것을 128로 바이어스된 값을 구하려면 128의 2진수값 을 더함

17 바이어스된 지수값 아래 표는 8비트의 지수가 128로 바이어스된 지수 값들을 나타냄 지수 비트 패턴은 은 128이며, 바이어스된 지수값은 0이다. -128~127의 실제 지수값을 표현한다.

18 바이어스된 지수값 바이어스 값이 128일때, -(13.625)10 에 대한 부동소수점 표현은 다음과 같다.

19 부동소수점 수의 표현 범위 32비트 부동소수점 수의 표현 범위

20 IEEE 754 표준 부동소수점 형식을 하나로 통일해 표현하기 위해 32비트의 단일-정밀도 형식 vs. 64비트의 복수-정밀도 형식

21 IEEE 754 표준 바이어스된 지수 지수 + 바이어스  바이어스된 지수 지수를 바이어스된 지수로 표현하는 이유는 음의 지수를 나타내기 위해

22 IEEE 754 표준 바이어스된 지수 바이어스 개념이 없을 경우의 지수 표현 범위 바이어스가 127인 경우의 지수 표현 범위
바이어스 값이 127이라면 바이어스된 지수를 0부터 255까지 표현할 수 있으므로 결국 지수는 -127부터 128까지 표현할 수 있음

23 IEEE 754 표준 IEEE 754 32-bit 단일 정밀도 표현 예 1 1 01111110

24 IEEE 754 표준 10진수 -(13.625)10 를 IEEE 754로 표현 먼저 를 2진수로 변경 표준형을 단일-정밀도 형식으로 표시. 바이어스 값이 127이고 정수 값인 좌측의 1은 제외된다.

25 범위(range)와 정밀도(precision)
범위: 데이터를 표현할 수 있는 최대값과 최소값 의미 정밀도: 2개의 연속적인 데이터 값 사이의 거리 부동 소수점 수는 범위와 정밀도라는 두 가지 특성을 모두 가짐 범위는 지수를 위한 유효 자릿수에 의해 결정 정밀도는 가수를 위한 유효 자릿수에 의해 결정 고정된 길이의 부동 소수점 표현에서 지수 필드 비트 수를 증가시키면 표현 범위는 넓어지지만 정밀도가 떨어진다. 가수 필드를 위한 비트 수를 증가시키면 표현범위가 좁아지지만 정밀도가 높아진다. IEEE 754 표준안은 32비트 부동 소수점 수를 위한 단일 정밀도 방식, 범위와 정밀도를 동시에 높일 수 있는 64비트 부동 소수점 수를 위한 2배 정밀도 방식을 제공

26 2진수의 연산 정수의 산술 음수화(2의 보수 변환) ; A = A'+ 1 (A ': 1의 보수) 덧셈 ; C = A + B

27 IEEE 754 표준 10진수 -(13.625)10 를 IEEE 754로 표현 먼저 를 2진수로 변경 표준형을 단일-정밀도 형식으로 표시. 바이어스 값이 127이고 정수 값인 좌측의 1은 제외된다.

28 음수화(negation) 2의 보수를 사용 +19 : 00010011 1의 보수 : 11101100 + 1 -19 :
-19를 2의 보수로 만드는 예 +19 : 1의 보수 : -19 :

29 덧셈 양수와 양수의 덧셈 음수와 양수의 덧셈 음수와 양수의 덧셈 음수와 음수의 덧셈 (+2) + (+3) = (+5)
자리 올림수가 발생하지 않음 (-6) + (+3) = (-3) 음수와 양수의 덧셈 자리 올림수가 발생 (-3) + (+5) = (+2) 음수와 음수의 덧셈 (-2) + (-4) = (-6) 0010 + 0011 0101 1101 + 0101 1 버림 0010 1010 + 0011 1101 1110 + 1100 1 버림 1010

30 A - (+B) = A + (-B) A - (-B) = A + (+B)
뺄셈 빼는 수를 보수화하여 결과적으로 덧셈을 이용 A - (+B) = A + (-B) A - (-B) = A + (+B) 자리 올림수가 발생하지 않는 경우 (+2)–(+5)=(+2)+(-5)=(-3) 자리 올림수가 발생하는 경우 (+5)–(+2)=(+5)+(-2)=(+3) 0010 + 1011 1101 = -3 0101 + 1110 1 버림 0011 = +3

31 곱하는 수(B)를 승수(multiplier)라고 하며, 곱하여 지는 수(A)를 피승수(multiplicand)
곱셈 곱하는 수(B)를 승수(multiplier)라고 하며, 곱하여 지는 수(A)를 피승수(multiplicand) A × B = C 부호가 없는 경우의 곱셈의 예 4비트의 두 수가 서로 곱셈을 수행하면, 2배인 8비트의 길이의 결과를 출력 × 1 피승수(13) 승수(11) 부분합 (partial product) 곱의 결과(143)

32 부동소수점 수의 산술연산 가수와 지수의 연산을 분리해서 수행 덧셈과 뺄셈은 지수를 동일한 값으로 조정한 후, 가수들끼리의 덧셈과 뺄셈을 수행 곱셈과 나눗셈에서 가수끼리는 곱셈과 나눗셈을 수행, 지수의 연산에서 곱셈은 덧셈을 수행하고 나눗셈은 뺄셈을 수행한다.

33 부동소수점 수의 산술연산 부동소수점 수의 덧셈과 뺄셈

34 부동소수점 수의 산술연산 부동소수점 수의 덧셈과 뺄셈 IEEE 754 형식

35 부동소수점 수의 산술연산 부동소수점 수의 곱셈 십진 부동소수점 수의 곱셈 예 이진 부동소수점 수의 곱셈 예
가수끼리는 곱셈 연산을 수행하고 지수끼리는 덧셈을 수행 십진 부동소수점 수의 곱셈 예 A = 0.3 × 102, B = 0.2 × 103 A × B = (0. 3 × 102) × (0.2 × 103) = (0.3 × 0.2) × = 0.06× 105 이진 부동소수점 수의 곱셈 예 ( × 23) × ( × 25) 가수 곱하기: 1011 × 1001 = 지수 더하기: = 8 정규화: × 28 = × 26 5.5 18 99

36 Exclusive-OR(XOR) : 2진수의 입력이 모두 동일할 경우에는 0이고, 나머지의 경우에는 1이된다
2진수의 논리연산 논리연산은 주어진 명제에 대하여 참(true)과 거짓(false)를 결정하는 연산 가장 기본인 되는 연산으로는 AND, OR, XOR, NOT등이 있음 기본적인 논리연산의 진리표 Exclusive-OR(XOR) : 2진수의 입력이 모두 동일할 경우에는 0이고, 나머지의 경우에는 1이된다

37 2진수의 논리연산 순환이동 순환 좌측 이동(circular shift-left) 순환 우측 이동(circular shift-right)


Download ppt "데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)"

Similar presentations


Ads by Google