ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

2의 보수

 

정의

컴퓨터 과학에서 음수를 표현하는 데 사용되는 방식입니다.

이전에는 부호 비트(Sign-Magnitude) 방식이 사용되었습니다.  ex) +5 → 00000101 , -5 → 10000101

하지만 0의 경우, +0(00000000₍₂₎)과 -0(10000000₍₂₎)이 따로 존재해 불필요한 중복이 발생했습니다.

또한 (+5) + (-5) 같은 연산을 하면, CPU가 따로 "부호를 보고 판단"해야 해서 회로가 복잡해지는 문제가 발생했습니다.

이로 인해, 2의 보수를 사용하였습니다.

2의 보수는 음수를 표현할 때, "양수의 모든 비트를 반전 후 +1"을 하는 방식입니다.

이를 통해 연산을 단순화하고, 0을 하나로 만들며, 표현 범위를 더 효율적으로 쓸 수 있게 하였습니다.

 

계산 방법

음수를 표현할 때, 양수의 모든 비트를 반전 후 +1을 합니다.

N비트 정수에서 -X를 표현하려면, X의 2진수 표현을 사용합니다.

예를들어, 8비트에서 -5를 표현할려면,  5를 2진수로 변환합니다.  00000101₍₂₎

그 후 모든 비트를 반전시킵니다.  11111010₍₂₎

마지막으로 +1을 합니다. 11111011₍₂₎

 8비트에서 -5는 2의 보수로 표현하면 11111011₍₂₎입니다.

 

특징

현대 CPU가 채택한 표현방법입니다.

📌 0이 하나만 존재합니다. (00000000)

 

📌  뺄셈을 덧셈으로 통일 가능해 하드웨어는 덧셈기만 있으면 됩니다. ex ) 7 - 5 → 7 + (-5)

 

📌 범위 표현이 대칭적으로 부호 비트 방식보다 활용 가능한 값이 하나 더 많습니다.

 

📌 하드웨어가 단순해지고, 성능이 좋아 현대 CPU가 채택하였습니다.


 

728x90