오차와 음수 표기

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진수로 변환

 

 

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비트 단위로 변환

 

2진수를 16진수로 변환

 

10진수를 이진 수 및 16진수로 변환

 

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