수의 표현과 산술회로(1)

chelseey·2025년 4월 24일

8진수 표현 방법

16진수 표현 방법

기수가 16인 수

10진수 → 8진수 변환

ex. 75.6을 8진수로 변환

정수부(75)의 8진수 변환

8로 나누어 나머지를 차례대로 기록하고, 몫이 0이 될 때까지 계속 나눔

따라서, 75₁₀ = 113₈

소수부(0.6)의 8진수 변환

8을 곱한 뒤, 정수부를 차례대로 기록하고 소수부만 남아 있는 한 계속 곱함

따라서, 소수부 8진수는 0.4631 4631 … (반복)

10진수 → 16진수 변환

정수부(75)의 16진수 변환

따라서, 7510=4B1675_{10} = 4B_{16}

소수부(0.6)의 16진수 변환

16을 곱한 뒤 정수부 부분을 차례로 기록

따라서, 소수부 16진수는 .9999… (반복)

진법 상호 변환 방법

8진수

10진수 → 2진수

75.6₁₀ = 1001011.10011001100110011…₂

2진수 → 8진수 (3비트씩 묶기)

1001011.1001100110011…₂
→ 001 001 011 . 100 110 011 001 100 11…₂

2진수를 3비트씩 묶어서 8진수로 바꿈

16진수

2진수 → 16진수 (4비트씩 묶기)

  • 정수부
    오른쪽 끝(최하위)부터 4비트씩
  • 소수부
    소수점 바로 다음 비트부터 4비트씩
   정수부:   1001 011   → 0100 | 1011
   소수부:   .1001 1001 1001 1001 …

2진수 정수 연산과 보수

MSB를 부호비트(sign bit)로 쓰는 방법

2진수에서 최상위비트(가장 왼쪽 비트, MSB)를 부호비트로 지정

  • 0 ⇒ 양수(+)
  • 1 ⇒ 음수(−)

ex. 8비트

+5 = 0 0000101  
−5 = 1 0000101   (부호비트=1, 나머지는 5 그대로)

보수(complement) 표현

1의 보수 (ones’ complement)

비트 전체를 반전(0↔1)
−x = (bitwise NOT of x)

2의 보수 (two’s complement)

1의 보수에 1을 더함
−x = (bitwise NOT of x) + 1

1의 보수 표현

비트 단위로 0↔1을 모두 뒤집음

ex.
00000011 (십진수 +3) → 1의 보수 = 11111100

11100010 → 1의 보수 = 00011101

2의 보수 표현

1의 보수를 만든 뒤, 맨 오른쪽(LSB)에 1을 더하면서 올림도 처리

ex, +3 → −3
원래 비트: 0000 0011
1의 보수: 1111 1100
여기에 +1 → 1111 1101

1의 보수든 2의 보수든, 최상위 비트(MSB)는 “부호 비트”로 사용

보수 연산 방법

r의 보수와 r-1 의 보수

  • r진법 n자리수 x의 r 의 보수
    rnxr^n - x

  • r진법 n자리수 x의 (r – 1)의 보수
    rnx1r^n - x-1

2진수의 경우 1의 보수 & 2의 보수 존재
10진수의 경우 9의 보수 & 10의 보수 존재

보수 사이의 관계

양수 ↔ 음수 변환

양수를 보수로 바꾸면 음수가 됨
음수를 보수로 바꾸면 양수가 됨

원래의 수 + 1의 보수 = 모두 1

ex. 0101(십진수 +5)의 1의 보수는 1010.

 0101
+1010
─────
 1111

→ 비트 하나하나가 전부 1이 됨

원래의 수 + 2의 보수 = (자리올림 1과) 모두 0

ex. 0101의 1의 보수 1010에 +1 → 1011 (0101의 2의 보수)

 0101
+1011
─────
1 0000

0개의 댓글