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

Slides:



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

3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
복지정책 9 조 with 신동면 prof. 기초노령연금 기초노령연금 기초노령연금의 이해 기초노령연금에 대한 쟁점 현 기초노령연금의 문제점.
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
1. 던전 디자인 개요_1 1. ‘던전’ 룬스톤은 던전 한 층에도 여러 개가 존재하며, 각 룬스톤 마다 영향을 미치는 범위가 설정되어 있다. 룬스톤이 영향을 주는 범위에 일정시간 사용자가 위치해 있게 되면 사용자 캐릭터는 ‘유령화’ 되어 버리기 때문에, 사용자는.
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
기본 컴퓨터 프로그래밍 Lecture #6.
디지털 시스템 2010년 1학기 교수: 송상훈 연구실: 율곡관 603-B
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
Lecture 5 C의 기초적인 값(primitive value)의 컴퓨터에서의 표현 문자, 정수, 실수, 참/거짓
Numerical Analysis - preliminaries -
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
Ch2-2. VHDL Basic VHDL lexical element VHDL description
하드웨어 구현 - A/D 변환기(A/D converter) - 샘플링 주파수(Sampling frequency)
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
컴퓨터시스템구조론 Stallings 저 / 김종현 역 제9판
컴퓨터 시스템의 개요.
Computer Architecture 3장
7. 자극과 반응 7-2. 신경계 3. 여러 가지 반응.
컴퓨터 활용 및 실습 Chapter 3 수식과 함수 김 정 석
제 2 장 변수와 상수.
Unit 1 Number Systems and Conversion (수의 체계와 변환)
2 데이터 표현과 컴퓨터 연산 IT CookBook, 컴퓨터 구조와 원리 2.0.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.
6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.
USB Door Lock System 공 민 표 강 정 이 권 경 곤
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
Web & Internet [06] CSS3 응용과 레이아웃
Formatted Input/Output
제 3 장 연산자 (Operators).
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
Power Point 2007년 정보화교육 원미구청 총무과 통신전산팀.
계산제어.
4장 - PHP의 표현식과 흐름 제어-.
신 호(Signal).
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
천안시 호재 정리 ▶ 천안 원 도심재개발 정비예정구역 총괄 : 80개 구역 규모 : 3,130,235 ㎡(약94.7만평)
디 지 털 공 학 한국폴리텍V대학.
2 수의 체계 IT CookBook, 디지털 논리회로.
3단원 디지털 세상 속으로 1. 0과 1의 비밀.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
Chapter 02 수의 체계.
2013년도 상반기 고객만족도 조사 결과 보고서
2013년도 하반기 고객만족도 조사 결과 보고서
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
직장생활 예절 ① - 인사 1.내가 먼저 [인사의 5point] 2.상대방의 눈을 보고 미소지으며 3.상대방에 맞춰서
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
국제금융.
Scalar and composite data
국어지도 유아교육과 권수연 김아람 중등특수교육과 박수진 양한솔
(Predicates and Quantifiers)
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
제03장 정보의 표현.
Scalar and composite data
Spring, 2019 School of CSE Pusan National University
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
Python 기본.
3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.
Presentation transcript:

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

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

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

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

정수의 덧셈 (-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 - 7 -6 - 7 -30000 – 30000 최상위 bit를 넘어가는 자리 올림수 1을 무시하면 5536이 되어 오버플로우 발생 -6 - 7 [그림 2-35] 6과 7의 뺄셈 [그림 2-36] -6과 7의 뺄셈 [-30000에서 30000의 뺄셈

이진수로 수를 표현하기 위해서는 0, 1, 부호 및 소수점을 이용 -13.62510 = -1101.1012 소수의 표현 이진수로 수를 표현하기 위해서는 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

음수화(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)

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

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

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

부동소수점 수의 산술연산 부동소수점 수의 곱셈 십진 부동소수점 수의 곱셈 예 이진 부동소수점 수의 곱셈 예 가수끼리는 곱셈 연산을 수행하고 지수끼리는 덧셈을 수행 십진 부동소수점 수의 곱셈 예 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 = 1.100011 × 26 5.5 18 99

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

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