공부/IT

IT_정수와 실수 표현

ProjectTrickCard 2023. 3. 22. 23:33

컴퓨터의 데이터 표현 방법

모든 데이터를 2진수로 표현 함

 

 

 

정수와 실수의 표현 방법

 

 

정수

부호 없는 정수(Unsigned Interger)

부호비트(+, -)가 존재하지 않음

n비트로 나타낼 수 있는 정수의 범위는 0부터 (2^n)-1

Ex)

8비트의 최대 표현수 : 255

(2^8)-1 == 255

 

 

 

 

부호 있는 정수(Signed Integer)

부호비트(+, -)가 존재 함

부호 있는 정수를 표현하는 방식도 여러가지 이다

양의 정수인 경우 부호 비트의 유무를 제외화면 모든 정수 표현 방식에서 동일한 형태로 표현되고, 최상위 1비트가 부호 비트로 사용된다

 

부호화-크기(Signed Magnitude)

최상위 비트(MSB, Most Significant Bit)를 부호 비트로 사용한다(가장 왼쪽에 자리하고 있는 비트)

0 - 양의 정수(+)

1 - 음의 정수(-)

나머지 비트들로는 표현하려는 수의 절대값을 2진수로 표현

Ex)

8비트로 +15 표현하기

00001111

8비트로 -15 표현하기

10001111

서로 다른 MSB를 가질 경우 계산이 복잡하다

 

 

 

1의 보수(1's complement)

양의 정수에 대한 음의 정수 표현

양의 정수 표현은 부호화-크기 방식의 표현과 동일

음의 정수 표현은 양의 정수 표현에 대해 0은 1로 1는 0으로 변환해 주어야 함

Ex)

-15의 1의 보수 표현

11110000

 

 

 

 

 

2의 보수(2's complement)

1의 보수에 1을 더한 표현 방법

 

 

 

Ex)

-15의 1의 보수 표현

11110000

 

-15의 2의 보수 표현

11110001

숫자 표현 범위

-2^(n-1) ~ 2^(n-1)-1 이다

Ex)

N = 4 이기에

-8 ~ 7 이다

 

 

실수

 

 

고정 소수점 방식

0뒤에 소수점을 붙이는 방식을 기반으로 함

Ex)

8비트로 실수를 표현한다

8비트의 앞 4비트는 정수부

8티브틔 뒤 4비트는 소수부

라고 정했다고 했을 때

1010.0111(2) -> 1010 0111

11.011(2) -> 0011 0110

구현하기 쉽고 연산속도가 빠르며 시스템 복잡도를 낮출 수 있음

하지만 표현의 범위가 매우 적음

 

 

 

 

 

 

 

부동소수점 방식

-1S * M * BE

S : 주어진 수가 0보다 큰지 작은지 나타내는 부호

M은 가수(Mantissa)

B는 기저(Base)

E는 지수(Exponent)

 

실수를 부동소수점 방식으로 컴퓨터에서 표현하기 위해 사용되는 기저는 2이다

때문에 부호, 가수, 지수를 2진수로 표현한다

 

부호는 0 또는 1을 사용

기수는 부호를 제외한 부분을 부호 없는 정수 방식으로 저장

Ex)

-5.678 X 10-10

부호 : 1

가수 : 5.678

기저 : 10

지수 : -10

 

 

초과 표기법

실수의 부동소수점 표현에서 지수 부분을 표현하기 위한 방법으로 사용

지수는 양수 또는 음수가 될 수 있음, 부호 비트를 별도로 사용하지 않고 부호화 함께 값을 표현하기

위해 초과 표기법을 사용

어떤 값을 초과표기법으로 표현하기 위해 N비트가 할당된 경우 2N-1 또는 2N-1-1을 매직넘버(Magic Number)로 지정 함

지수값에 매직넘버의 값을 더해 N비트에 맞도록 2진수로 변환

Ex)

10진수 6을 8비트 2진수 초과표기법으로 나타내면

6에 매직넘버 127 더하기

결과를 8비트 2진수로 변환

10000101

 

정규화

가수를 표현할 때는 표준화된 형식이 필요함

소수점의 위치에 따라 가수의 형태가 달라질 수 있음

때문에 정규화 과정을 거침

소수점 바로 왼쪽에 오직 1개의 1만 있도록 소수점 위치를 조정하는 과정

-1010.00110011 X 23

-10.1000110011 X 25

정규화

-1.01000110011 X 26