🔢 컴퓨터는 음수를 어떻게 표현할까?

4비트로 배우는 2의 보수 체계

💡 "MSB가 1이면 음수" — 이건 자연법칙이 아니라 약속입니다!

그리고 그 약속에는 아주 똑똑한 이유가 있어요
← MSB (부호 비트) LSB →
그냥 읽으면 (unsigned)
0
→
약속대로 읽으면 (signed)
0
🎯 직접 눌러보세요

🤔 왜 "8 - 16 = -8" 인가요?

4비트로 표현할 수 있는 패턴은 총 16개예요 (0000 ~ 1111).
그런데 우리는 음수도 표현하고 싶잖아요?

💡

핵심 아이디어

16개 중 절반(8~15)을 음수로 쓰자!
대신 "진짜 값에서 16을 뺀 것"으로 해석하자고 약속한 거예요.

🕐

시계 비유

시계에서 12시 + 1시간 = 13시가 아니라 1시죠?
마찬가지로 4비트에서 7 + 1 = 8인데, 이걸 "8 - 16 = -8"로 해석해요.
한 바퀴(16) 돌아서 반대편으로 간 거예요!

📊 16개의 비트 패턴, 두 가지 해석

🔴 음수 영역
8~15 → -8~-1
🟢 양수 영역
0~7 그대로
👆
막대를 클릭해보세요!

unsigned 8~15는 signed로 해석하면 -8~-1이 됩니다.
공식: signed = unsigned - 16 (MSB가 1일 때)

🧮 현재 값의 변환 공식

🔄 원형으로 보면 더 쉬워요

양수
음수
↻ +1
0
0000

숫자들이 원형으로 연결되어 있어요!
7에서 +1하면 8이 되는데, 8은 "한 바퀴(16) 빼서" -8이 돼요.

⚡ 이게 바로 오버플로우!

📚 더 알아보기