정수와 실수의 표현
해당 문서는 정보통신개론에 관한 내용으로, 정수와 실수의 표현 방식에 대해 다룬다.
정수
컴퓨터에서는 보통 2진수로 표현되는 정수를 사용한다.
이진수에서는 0과 1만을 사용하기 때문에, 다른 진법에서와 달리 자릿수 표현이 간단하다.
또한, 2진수에서는 각 자리가 2의 거듭제곱으로 나눠진다.
예를 들어, 1010
은 12^3 + 02^2 + 12^2 + 02^0 으로 10진수로 표현한다면 10이다.
실수
컴퓨터에서는 실수를 표현할 때 부동 소수점 방식을 사용한다.
이 방식은 실수를 정확하게 표현하기 어려운 문제가 있지만, 대부분의 경우에는 충분히 정확하다.
부동 소수점 방식에서는 실수를 32비트 또는 64비트로 표현한다.
이 비트수가 크면 클수록 정밀도가 높아진다. 하지만, 비트수가 크면 클수록 메모리 사용량이 많아지기 때문에 실제로는 적절한 비트수를 선택해야 한다.
수치 데이터 형식
- 고정 소수점 표현(Fixed-Point): 2진 데이터 레지스터[1] 에서 소수점의 위치를 2가지로 표현한다.
- 레지스터의 가장 왼쪽에 있다고 가정(Fraction: 0.AAAAA)
- 레지스터의 가장 오른쪽에 있다고 가정(Integer: AAAAA.0)
- MSB(Most Significant bit): 부호 비트(양수:0, 음수:1)
- 양수의 정수부분: 10진수 -> 2진수 진법변환 후 표시
- 음수의 정수부분: 2의 보수법[2] 사용 후 표시
고정 소수점 데이터 형식
- 10진 데이터 정수 표현
- 팩 10진 형식(Packed Decimal Format): 10진수 한자리를 4개의 비트로 표현한다. 가장 우측의 4개 비트는 양수이면 C(1100) 음수이면 D(1101)
- 비팩 10진 형식(Unpacked Decimal Format): 10진수 한자리를 8개의 비트로 표현한다. 왼쪽 4비트: zone, 나머지 4비트: 숫자
부동 소수점 데이터 형식
컴퓨터에서 데이터를 일시적으로 저장할 수 있는 작은 메모리 공간이다. CPU 와 직접적으로 연결되어 데이터 처리 및 제어에 사용된다. ↩︎
2의 보수법은 음수를 표현하는 방법 중 하나로, 어떤 수의 2의 보수는 그 수의 1의 보수에 1을 더한 값이다. 1의 보수는 기존 수의 모든 비트를 반대로 바꾸면 된다. 예를 들어 -5를 8비트 2진수로 나타내면
00000101
의 1의 보수인11111010
을 구한 뒤, 1을 더해11111011
이 된다. 이는 5의 2의 보수와 같다. 2의 보수를 사용하면 덧셈과 뺄셈을 동일한 방식으로 수행할 수 있다. ↩︎지수부는 실수를 컴퓨터에서 표현할 때 사용되는 부동 소수점 방식에서 지수를 2진수로 변환하여 표현하는 부분이다. 지수부의 역할은 실수의 크기를 표현하고 소수점의 위치를 조정하는 것이다. 지수부는 보통 8비트 또는 11비트로 표현되며 이진수로 표현된 지수는 부호 비트, 지수 부분, 가수 부분으로 나뉜다. 지수부의 크기가 작을수록 표현할 수 있는 수의 범위는 제한적이지만, 정밀도는 높아진다. 반대로 지수부의 크기가 클수록 표현할 수 있는 수의 범위는 넓어지지만 정밀도는 낮아진다. 따라서 적절한 크기의 지수부를 선택하는 것이 중요하다. ↩︎
가수부는 실수의 소수점 이하 부분을 이진수로 표현한 것으로 소수점은 지수부와 가수부 사이에 있는 것으로 가정한다. 가수부의 크기는 비트 수에 따라 다르며 이진수로 표현된 가수는 부호 비트, 지수 부분, 가수 부분으로 나뉜다. 가수부의 크기가 클수록 표현할 수 있는 수의 범위는 넓어지지만 정밀도는 낮아진다. 반대로 가수부의 크기가 작을수록 표현할 수 있는 수의 범위는 제한적이지만 정밀도는 높아진다. ↩︎