IT_정수와 실수 표현
컴퓨터의 데이터 표현 방법
모든 데이터를 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