본문 바로가기
기타

정보처리 필기_전자계산기 구조_05_자료의 내부적 표현 메모

by avvin 2019. 10. 26.

필요한 내용은 Ctrl + F (페이지 내에서 찾기) 로 키워드 검색하여 찾아주세요

저작권법에 위배될만한 이미지는 모두 삭제해서 중간중간 빠진 내용이 많습니다.








1. 10진 데이터 표현법 : BCD 코드같은게 10진 데이터 표현


2. 2진 데이터 표현법


3. 부호와 1의 보수 / 부호와 2의 보수


4. 부동소수점 표현




자료의 내부적 표현 (=수치 표현)


정수 (고정소수점) - 10진 표현 : Pack형 / Unpack형

Packed Format : 숫자 표현하고 맨뒤에 부호 표시. +는 C(16) / D(16)는 / 10진수 연산 형식

ex ) +1234는 0000 0001 0010 0011 0100 1100(C) => 01234C

용도 : 10진 데이터 연산


Unpacked Format (Zoned Decimal)

ex) 494D(-494) => F 4 F 9 D 4  :  zone digit zone digit sign digit ★★★

     Zone 영역을 F(1111)로 채움

용도 : 10진 데이터 입/출력



 - 2진 표현 : 부호와 절대치(부호 및 크기) / 부호와 1의보수 / 부호와 2의 보수


부호화 절대치 : 고정소수점 표현에서 음수 변환 가장 쉬움/ +0 -0 존재 / 8비트로 표현 가능 범위 : -127 ~ +127


부호와 1의 보수 (Signed 1's complement) :  +0 -0 존재 / 8비트로 표현 가능 범위 : -127 ~ +127


부호와 2의 보수 (Signed 2's complement) : 

-0이 존재하지 않는다. (0을 1의보수로 표현하고 1 더하면 자리수가 넘어가버림) / 

쉽게 구하는 방법 오른쪽에서 1 나올때까지(1까지) 그대로 내리고 그 앞부터 바꿔줌 /

8비트로 표현 가능 범위 : -128 ~ +127 ( 1 0 0 0 0 0 0 0 는 -128)




실수 (부동소수점 Floating Point) - 부호 ( Sign )  /  지수부( Exponent )  /  가수부 ( Mantissa, 소수부 )




굉장히 큰 수를 제한된 비트로 표혈할 방법으로 고안됨 ( 정규화 )


정규화의 목적 : 유효숫자 늘리기 위함 (연산결과 정확성, 연산 속도, 간단히하기위함 다 XXXX)


가수 부호가 +이면 0 _이면 1로 나타낸다.

지수는 부호에 관계없이 bias 수를 더한다.  (지수가 음수가 나오는 경우 계산을 쉽게하기 위함!  IEEE754)


* IEEE754 : 부동소수점 표현에 대한 표준안 중 하나


부동 소수점 표현 특징


-실수 데이터의 표현 및 연산에 사용

- 매우 큰 수나 작은 수 표현

- 수 표현에 필요한 자리 수에 있어서 효율적

- 연산절차가 복잡하고 많은 시간이 걸리며 하드웨어적으로 복잡 (FLOPS : cpu가 1초당 부동소수점 연산하는 시간)


https://www.youtube.com/watch?v=mTvPkzDj6aY&list=PLimVTOIIZt2aR9jib0ws7hoDVZXdtiWsK&index=6

1: 04 부터



부동소수점 변환 문제 13.625나 -13.625 암기




부동소수점 수의 연산



덧셈, 뺄샘


1. 0인지 여부 조사

2. 가수의 위치 조정 (지수가 큰 쪽으로 맞춤)

3. 가수부 값(소수부끼리)끼리 더하거나 뺀다

4. 결과를 정규화





2.가수의 위치 조정 (지수가 큰 쪽으로 맞춤)


 (0.12*10^5) + (0.34*10^3)  =>> (0.12*10^5) + (0.0034*10^5)



4. 결과를 정규화 : 결과값을 0.XXX 형태로 바꿔줌



곱셉 : 0인지 여부 조사 > 지수는 더하고 > 가수는 곱하고 > 결과 정규화


나눗셈 : 0인지 여부 조사 > 부호 결정 > 피제수(나누어지는 수)의 위치를 조정 > 지수의 뺄셈 > 가수의 나눗셈 



피제수(나누어지는 수)의 위치를 조정


(0.27*10^5)  / (0.18*10^3)

▲피제수


피제수의 가수부분(0.27)을 제수(0.18)의 가수보다 작게 만들어야한다. >> (0.27*10^5)  >> (0.027*10^6) : 피제수의 위치조정


 ( 0.027 / 0.18 ) * 10^(6-3)



지수의 뺄셈 > 가수의 나눗셈  : 

지수부분 부터 계산하면, 이 수가 이 컴퓨터가 계산해낼 수 있는 숫자의 범위 안에 있는지 여부를 먼저 알수 있다. 안된다면 가수부 연산 전에 에러를 낸다.