3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Chapter 04 컴퓨터에서 데이터 표현. 04 컴퓨터에서 데이터 표현 2 인코딩 (encoding) – 현실세계의 정보를 컴퓨터 내부에서 처리할 수 있는 이진수로 변환하는 방법 1. 컴퓨터 속에서 데이터 표현 원리 0 - 아빠 1 - 엄마 00 - 아빠 01 - 엄마.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Ⅱ. 정보의 표현과 관리. Ⅱ. 정보의 표현과 관리 2. 자료의 표현과 연산 1. 정보와 자료 구조.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
재료수치해석 HW # 박재혁.
제 7 장 함수 사용을 통해 엑셀 정복하기.
Lecture #5 어셈블리어 (2) 매크로 어셈블리어 시스템프로그래밍.
데이터의 표현 (data Representation)
데이터의 표현 컴퓨터 속에서 데이터 표현 원리 디지털 논리회로에 기반한 컴퓨터는 두 가지 상태만을 구별
Chapter 04 C 연산자의 이해.
디지털영상처리 및 실습 대구보건대학 방사선과.
Lecture #4 제3장. 컴퓨터 산술과 논리 연산.
2장. 데이터의 표현 Lecture #2.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
Computer Architecture 3장
Modulo 연산.
Part 05 순수한 연산자 ©우균, 창병모 © 우균, 창병모.
6장. printf와 scanf 함수에 대한 고찰
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
근사값과 반올림 오차 절단 오차와 Taylor 급수 오차의 전파
4부 1장 정보를 다양하게 표현하기 컴퓨터를 이용하여 매우 다양한 일들을 처리하고 있다. 컴퓨터는 정보를 어떻게 만들고 표현하며, 어디에서 어떤 이유로 사용될까요? 지금부터 정보의 세계로 들어가 보겠습니다.
Ⅱ. 정보의 표현 1. 진수 변환 2. 2진수의 연산 3. 실수의 표현 ■ 단원 학습 정리 1. 10진수와 2진수
3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.
누산기를 이용한 직렬(Serial) 덧셈기
데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)
Chapter 07 프로세서와 연산장치.
Computer System Architecture
어셈블리어 (2) 매크로 어셈블리어 시스템 프로그래밍 - Lecture #4
Gachon CS50 Python Basics I Basic Operators 가천대학교 | 산업경영공학과 최성철 교수.
Lesson 4. 수식과 연산자.
디지털 시스템 2010년 1학기 담당교수: 최선영 연구실: 산학연구관 6층 602 ( )
상수와 기본 자료형.
DK-128 FND 실습 아이티즌 기술연구소
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
연산자 (Operator).
2장. 변수와 타입.
제4강 처리장치 1.
제곱근의 곱셈과 나눗셈 제곱근의 곱셈과 나눗셈 a > 0, b > 0 일 때, √ 3 √ 5 √15 3 √ 5
1. 2진 시스템.
CHAPTER 02. 정보의 표현 정보 체계_컴퓨터 내부의 정보 표현과 정보 처리
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
2 Chapter 자료 표현 및 연산 이렇게 준비하세요.
정보의 표현 정보 체계_컴퓨터 내부의 정보 표현과 정보 처리
계산기.
Excel 일차 강사 : 박영민.
제3장 함수와 배열수식 전진환
1학기 수학 연산 풀이 (3학년) 와이즈캠프 담임선생님.
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 1 단위, 물리량, 벡터.
AT MEGA 128 기초와 응용 I 기본적인 구조.
제11강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
논리회로 설계 및 실험 4주차.
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
8장. 연산 장치 Lecture #8.
제10강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
제 4 장 Record.
I. 수와 식 1. 유리수와 순환소수.
Computer System Architecture
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
아날로그 신호를 디지털 신호로 변환하는 A/D 변환기 A/D 변환 시 고려하여 할 샘플링 주파수 D/A 변환기
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
C로 만드는 자료구조.
Presentation transcript:

3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산

Section 01 개념으로 살펴본 CPU속의 산술 논리 연산장치 살펴보기 산술논리연산장치 (Arithmetic & Logic Unit : ALU) 산술 및 논리 연산을 수행 레지스터 제어 장치 [그림 3-1] CPU의 내부 구성

ALU의 내부 구성 요소 산술 연산장치 논리 연산장치 쉬프트 레지스터 보수기(complementer) +, -, ×, ÷등을 수행 논리 연산장치 AND, OR, XOR, NOT 등을 수행 쉬프트 레지스터 shift register 비트들을 좌우측으로 이동 보수기(complementer) 2진 데이터를 2의 보수로 변환 음수를 만드는 역할 상태 레지스터(status register) 연산 결과의 상태를 나타내는 플래그(flag)들을 저장 [그림 3-2] ALU의 구성 장치

Section 02 진법과 진법 변환 진 법 십진수의 개념 이진수의 개념 0 ~ 9의 10가지의 기호를 이용하여 수를 표현 십진수 (724)10의 분석 : 700+20+4 10의 승수(10N)로 표현 10진수의 표시: (724)10 = 7×102+2×101+4×100 이진수의 개념 0과 1만을 가지고 수를 표현 십진수의 관계는 2의 승수(2N)로 표현 (101101)2 = 1×25+0×24+1×23+1×22+0×21+1×20 = (45)10

진법 변환 십진수를 이진수로의 변환 이진수를 십진수로의 변환 연속적으로 2로 나눗셈을 수행하면서 얻어지는 나머지에 의해서 만들어진다. (41)10의 이진수로 변환 41을 2로 연속해서 나눗셈 생성된 나머지를 정렬 (41)10 = (101001)2 이진수를 십진수로의 변환 이진수를 2N로 표현 (101001)2 = 1×25+0×24+1×23+0×22+0×21+1×20 = 32+8+1 = (41)10

보수(Complementary Number) Section 03 연산과 보수 이진수의 음수 표현 방법으로 보수가 대표적 보수(Complementary Number) r진법에서 두 종류의 보수가 존재 r의 보수와 (r-1)의 보수 이진수에서는 1의 보수와 2의 보수가 존재

(r-1)의 보수 n자리수의 수 N에 대한 (r-1)의 보수 이진수에서 1의 보수 (1011001)2에 대한 1의 보수 N에 대한 1의 보수는 (2n-1)-N 2n은 1과 뒤이은 n개의 0으로 구성 2n-1은 n개의 1로 구성 1의 보수는 각 자리의 숫자를 각각의 1에서 뺀 것 (1011001)2에 대한 1의 보수 ⇒ r=2, n=7자리수의 수 N=1011001에 대한 1의 보수 27=10000000, 27-1=1111111 (rn - 1) – N = (27 - 1) – 1011001 = 1111111 - 1011001 = 0100110

r진법에서 n자리수의 N (N≠0)에 대한 r의 보수 r의 보수가 rn-N=[(rn-1)-N]+1으로부터 정의되므로 r의 보수는 (r-1)의 보수에 1을 더하면 된다. (101100)2에 대한 2의 보수 ⇒ 이진수에 대한 1의 보수: 111111 – 101100 = 010011 이진수에 대한 2의 보수: 010011 + 1 = 010100

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

소수의 표현 소수점 이하의 십진수값을 이진수로의 표현 (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 = (1101.101)2

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

음수의 표현 음수를 표현하기 위해서는 부호 비트를 할당 적절하게 크기 값을 표현 부호화-크기 표현(signed-magnitude representation) 1의 보수 표현(1's complement representation) 2의 보수 표현(2's complement representation)

보수를 이용한 음수의 표현 디지털 장치에서 1의 보수를 구하는 방법 2의 보수 1의 보수에 1을 더한 것 모든 비트들을 0 → 1, 1 → 0으로 반전 2의 보수 1의 보수에 1을 더한 것 1의 보수: 11001111 → 00110000 (반전) 2의 보수: 1의 보수(1's complement) 표현 모든 비트들을 반전 (0 → 1, 1 → 0) 2의 보수(2's complement) 표현 모든 비트들을 반전하고, 결과값에 1을 더한다 00110000 + 1 00110001

A = - 2n-1 + (an-2×2n-2+ an-3×2n-3+… a1×21+ a0×20 ) 2의 보수를 사용한 음수의 표현 2의 보수로 표현된 양수(최상위 비트: an-1 = 0)의 십진수 변환 A = an-2 × 2n-2 + an-3 × 2n-3 + ... a1 ×21 + a0 ×20 2의 보수로 표현된 음수(최상위 비트: an-1 = 1)의 십진수 변환 A = - 2n-1 + (an-2×2n-2+ an-3×2n-3+… a1×21+ a0×20 ) 2의 보수로 표현된 음수의 변환의 예 10101110 = - 128 + (1 × 25 + 1 × 23 + 1 × 22 + 1 × 21) = - 128 + (32 + 8 + 4 + 2) = - 82

2의 보수로 표현된 n비트 데이터의 표현 할 수 있는 수의 범위 -2n-1 ≤ N ≤ 2n-1-1 수의 표현 범위 2의 보수로 표현된 n비트 데이터의 표현 할 수 있는 수의 범위 -2n-1 ≤ N ≤ 2n-1-1 비트에 따른 수의 범위와 최대값과 최소값의 표현 8비트 2의 보수: -128 ≤ N ≤ +127 27–1 = 01111111 = +127 -27 = 10000000 = -128 16비트 2의 보수: -32768 ≤ N ≤ +32767 215-1 = 011111111 11111111 = +32767 -215 = 100000000 00000000 = - 32768

부동소수점 표현 (Floating-Point Representation) 고정소수점(fixed-point)표현 방식 1010.1010 = 24 + 21 +2-1 + 2-3 = 10.625 매우 큰 수 및 매우 작은 수의 표현이 불가능 부동소수점(floating-point)의 표현 과학적 표기의 지수(exponent)를 사용하여 소수점의 위치를 이동시킬 수 있는 표현 방법 표현의 범위가 확대 십진수에 대한 부동소수점 표현 예 176,000 = 1.76 × 105 176,000 = 17.6 × 104 0.000176 = 1.76 × 10-4 0.000176 = 17.6 × 10-5

부동소수점 수(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 +1.100101 × 23 비트 수에 따른 분류 단일-정밀도(single-precision) 부동소수점 수 : 32비트 복수-정밀도(double-precision) 부동소수점 수 : 64 비트

부동소수점 표현 단일-정밀도 부동소수점 수 형식 필드에 비트할당 문제 부호 필드(S) 1비트, 지수필드(E) 8비트, 가수필드(M) 23비트 필드에 비트할당 문제 표현하는 수의 범위와 정밀도를 결정 지수(E) 필드의 비트 수가 늘어나면, 소수점을 이동시키는 범위가 커져서 표현 가능한 수의 범위가 확장 가수(M) 필드의 비트 수가 늘어나면, 이진수로 표현할 수 있는 수가 많아져서 정밀도(precision)가 증가 31 30 23 22 0 S필드 지수(E) 필드 가수(M) 필드

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

Section 05 산술 연산 정수의 산술 음수화(2의 보수 변환) ; A = A'+ 1 (A ': 1의 보수) 덧셈 ; C = A + B 뺄셈 ; C = A - B 곱셈 ; C = A× B 나눗셈 ; C = A / B

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

덧셈 양수와 양수의 덧셈 음수와 양수의 덧셈 음수와 양수의 덧셈 음수와 음수의 덧셈 (+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

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

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

나눗셈 나누어지는 수 D를 피제수(dividend), 나누는 수 V를 제수(divisor), 나눗셈의 결과 몫(quotient) Q와, 나머지 수(remainder) R D ÷ V = Q … R 00001101 ← 몫 제수 → 1011 10010011 ← 피제수 부분나머지 → 001110 001111 100 ← 나머지

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

부동소수점 수의 덧셈과 뺄셈 지수들이 동일한 값을 같도록 일치 가수들 간의 덧셈과 혹은 뺄셈을 수행 이진수의 경우 결과를 정규화 (normalization) 십진수의 부동소수점의 수의 덧셈과 뺄셈 A = 0.3 × 102, B = 0.2 × 103 덧셈 연산 A + B = 0. 3 × 102 + 0.2 × 103 = 0.3 × 102 + 2 × 102 = 2.3 × 102 뺄셈 연산 A - B = 0. 3 × 102 - 0.2 × 103 = 0.3 × 102 - 2 × 102 = - 1.7 × 102 이진수의 부동소수점 수의 덧셈 지수조정 0.110010 × 22 ⇒ 0.011001 × 23 +0.111011 × 23 + 0.111011 × 23 정규화 1.010100 × 23 0.101010 × 24

부동소수점 수의 곱셈과 나눗셈 부동소수점 수의 곱셈 십진 부동소수점 수의 곱셈 예 이진 부동소수점 수의 곱셈 예 가수끼리는 곱셈 연산을 수행하고 지수끼리는 덧셈을 수행 십진 부동소수점 수의 곱셈 예 A = 0.3 × 102, B = 0.2 × 103 A × B = (0. 3 × 102) × (0.2 × 103) = (0.3 × 0.2) × 102+3 = 0.06× 105 이진 부동소수점 수의 곱셈 예 (0.1011 × 23) × (0.1001 × 25) 가수 곱하기: 1011 × 1001 = 01100011 지수 더하기: 3 + 5 = 8 정규화: 0.01100011 × 28 = 0.1100011 × 27

부동소수점 수의 곱셈과 나눗셈 부동소수점 수의 나눗셈 십진수의 부동소수점 수의 나눗셈 가수부분은 나눗셈 연산을 수행하고, 지수부분은 뺄셈 연산 수행 십진수의 부동소수점 수의 나눗셈 A ÷ B = 0. 3 × 102 ÷ 0.2 × 103 = (0.3 ÷ 0.2) × 102-3 = 1.5× 10-1 이진수 부동소수점 수의 나눗셈 (0.1100 × 25) ÷ (0.1100 × 23) 가수 나누기: 1100 ÷ 1100 = 1 지수 뺄셈: 5 - 3 = 2 정규화: 0.1 × 22

Section 06 논리 연산 마스크(mask) 연산 원하는 비트들을 선택적으로 clear하는 데 사용하는 연산 A 레지스터의 상위 4비트를 0으로 clear하는 경우의 예 A = 1 0 1 1 0 1 0 1 (연산 전) B = 0 0 0 0 1 1 1 1 마스크 (AND)연산 A = 0 0 0 0 0 1 0 1 (연산 후)

컴퓨터 응용 논리 연산 비교(compare) 연산 두 데이터를 비교하는 연산으로 대응되는 비트들의 값이 같으면, 해당 비트를 0으로 세트하고 서로 다르면, 해당 비트를 1 세트 모든 비트들이 같은 경우, Z 플래그(zero 플래그)를 1로 세트 A = 1 1 1 0 0 0 0 1 (연산 전) B = 0 1 0 1 1 0 0 1 비교(XOR)연산 A = 1 0 1 1 1 0 0 0 (연산 후)

산술적 쉬프트(arithmetic shift) 컴퓨터 응용 논리 연산 산술적 쉬프트(arithmetic shift) 쉬프트 과정에서 부호 비트는 유지하고, 수의 크기를 나타내는 비트들만 쉬프트한다. 산술적 좌측-쉬프트 D4 (불변), D3 ← D2, D2 ← D1, D1 ← 0 산술적 우측-쉬프트 D4 (불변), D4 → D3 , D3 → D2, D2 → D1 다음은 산술적 쉬프트의 예이다. A = 1 0 1 0 1 1 1 0 ; 초기 상태 1 1 0 1 1 1 0 0 ; A의 산술적 좌측-쉬프트 결과 1 1 0 1 0 1 1 1 ; A의 산술적 우측-쉬프트 결과