정의
컴퓨터 과학에서 음수를 표현하는 데 사용되는 방식입니다.이전에는 부호 비트(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가 채택하였습니다.