오차와 음수 표기
2025. 3. 12. 15:04ㆍ디지털 논리회로
1. 이진수로 변환 및 사칙연산
$ 53_{10} $ 을 2진수로 변환하면 53을 2로 나눈 나머지의 연결인 110101이 된다.
$ 0.6875_{10} $ 을 2진수로 변환하면 0.6875을 2로 곱한 후 소수점 앞의 연결인 $ 0.1011_{2} $이 된다.
(소수점이 있는 소수의 경우 제한된 비트 내에서 2진수로 변환하는 경우 오차가 발생 하 수 있다 ex 0.6를 이진수로 변환)
2. 10진수를 16진수로 표현하는 방법
3. 부동소수점 표현과 오차
컴퓨터에서 10진수를 2진수로 변환하는 과정에서 제한된 비트 수 때문에 정확한 값을 표현할 수 없으며, 이에 따라 오차가 발생합니다. 이를 해결하기 위해 단일 정밀도(32비트) 혹은 배 정밀도(64비트)를 사용하여 정밀도를 높일 수 있습니다.
부동소수점 오차 예시
예를 들어,
- $0.6_{10} = 0.10011001_{2}$
- 이를 다시 10진수로 변환하면:
- $ 1 X 2^{-1} + 1 X 2^{-4} + 1 X 2^{-5} + 1 X 2^{- 8} = 0.59765625_{10} $
- 따라서 발생하는 오차는: $ \varepsilon $= 0.6 -0.59765625
4. 단어(Word)와 데이터 표현
단어(Word)의 개념
- 디지털 시스템에서 데이터의 입력, 처리, 저장 및 출력을 수행하는 기본 단위
- 시스템마다 단어 크기가 다름 (예: 8비트, 16비트, 32비트, 64비트 등)
16진수와 2진수의 변환
- 16진수를 2진수로 변환할 때는 각 16진 숫자에 대해 4비트 단위로 변환
5. 음수 표현 방식
컴퓨터에서 음수를 표현하는 방식에는 다음과 같은 방법이 있습니다.
부호-크기 표현 (Sign-Magnitude Representation)
- 맨 좌측 비트(MSB, Most Significant Bit)를 부호 비트로 사용 (0: 양수, 1: 음수)
- 표현 범위: $-(2^{n-1}-1)$ ~ $+(2^{n-1}-1)$
1의 보수 표현 (One’s Complement)
- 모든 비트를 반전 (0 → 1, 1 → 0)
- 문제점: 0을 나타내는 방식이 2개 존재 (0000...0000, 1111...1111)
- 이로 인해 0을 판별할 때 최대 두 번 검사해야 하는 비효율성 발생
2의 보수 표현 (Two’s Complement)
- 모든 비트를 반전한 후 1을 더함
- 장점: 0의 표현이 단 하나만 존재, 덧셈과 뺄셈 연산이 단순해짐
2의 보수로 표현된 값을 10진수로 변환
6. 2의 보수 연산과 오버플로우
2의 보수 연산 방법
- 두 수를 더한 후, 올림수가 발생하면 버린다 (Drop-out 방식)
오버플로우(Overflow) 발생
- 연산 결과가 수의 표현 범위를 초과하면 오버플로우 발생 (계산 결과의 부호가 바뀌었을 때도 오버플로우 가능성 있음)
- 예: 8비트 보수 표현에서는 -128 ~ 127까지만 표현 가능
- $127 + 1$ → -128 (잘못된 결과)
- $-128 - 1$ → 127 (잘못된 결과)
- 해결 방법: 비트 수를 증가시키는 방식으로 방지 가능
7. 뺄셈 연산 최적화
- 컴퓨터에서 뺄셈은 덧셈을 이용하여 수행 가능
- 예: $A - B = A + (-B)$
- 따라서 뺄셈기를 따로 설계할 필요 없이 덧셈 회로를 재사용 가능
반응형
'디지털 논리회로' 카테고리의 다른 글
SSI 칩 (0) | 2025.04.06 |
---|---|
NMOS 게이트 회로 (0) | 2025.04.06 |
논리 게이트 (0) | 2025.04.05 |
각종 표기법 및 오류 검출 코드 (0) | 2025.03.23 |
디지털 신호 (1) | 2025.03.05 |