기수가 16인 수
ex. 75.6을 8진수로 변환
8로 나누어 나머지를 차례대로 기록하고, 몫이 0이 될 때까지 계속 나눔
따라서, 75₁₀ = 113₈
8을 곱한 뒤, 정수부를 차례대로 기록하고 소수부만 남아 있는 한 계속 곱함
따라서, 소수부 8진수는 0.4631 4631 … (반복)
따라서,
16을 곱한 뒤 정수부 부분을 차례로 기록
따라서, 소수부 16진수는 .9999… (반복)
75.6₁₀ = 1001011.10011001100110011…₂
1001011.1001100110011…₂
→ 001 001 011 . 100 110 011 001 100 11…₂
2진수를 3비트씩 묶어서 8진수로 바꿈
정수부: 1001 011 → 0100 | 1011
소수부: .1001 1001 1001 1001 …
2진수에서 최상위비트(가장 왼쪽 비트, MSB)를 부호비트로 지정
ex. 8비트
+5 = 0 0000101
−5 = 1 0000101 (부호비트=1, 나머지는 5 그대로)
비트 전체를 반전(0↔1)
−x = (bitwise NOT of x)
1의 보수에 1을 더함
−x = (bitwise NOT of x) + 1
비트 단위로 0↔1을 모두 뒤집음
ex.
00000011 (십진수 +3) → 1의 보수 = 11111100
11100010 → 1의 보수 = 00011101
1의 보수를 만든 뒤, 맨 오른쪽(LSB)에 1을 더하면서 올림도 처리
ex, +3 → −3
원래 비트: 0000 0011
1의 보수: 1111 1100
여기에 +1 → 1111 1101
1의 보수든 2의 보수든, 최상위 비트(MSB)는 “부호 비트”로 사용
r진법 n자리수 x의 r 의 보수
r진법 n자리수 x의 (r – 1)의 보수
2진수의 경우 1의 보수 & 2의 보수 존재
10진수의 경우 9의 보수 & 10의 보수 존재
양수를 보수로 바꾸면 음수가 됨
음수를 보수로 바꾸면 양수가 됨
ex. 0101(십진수 +5)의 1의 보수는 1010.
0101
+1010
─────
1111
→ 비트 하나하나가 전부 1이 됨
ex. 0101의 1의 보수 1010에 +1 → 1011 (0101의 2의 보수)
0101
+1011
─────
1 0000