출처: https://devraphy.tistory.com/281 [개발자를 향하여:티스토리]


⭐ 2의 보수?

: 2진법에서 음수를 표현하는 방법


1의 보수는 2진수를 NOT 연산 해주면 된다!
ex) 10110 -> 01001
음수표기를 위해 앞에 부호로 1 01001 이라고 해주면 음수가 됨





⭐ 2의 보수를 구하는 방법 

  1. 십진법으로 표현된 음수 -10을 이진법으로 계산한다. (값 : 1010)
  2. 이진법으로 계산된 값을 토대로 1의 보수를 구한다. (값 : 0101)
  3. 1의 보수에 1을 더한다. (값 : 0101 + 1)
  4. 결과는 0110으로, 이것이 -10에 대한 2의 보수가 된다. 


⭐ 2의 보수의 원리

음수는 절대값이 같은 양수와 더하면 0이 되는 수이다.
2진법에서도 이 원리를 이용해 음수를 표현하면 1010 + x = 1)0000
x는 0110이 되면 캐리를 제외한 값이 0000이 된다!



⭐ 2의 보수를 사용하는 이유


📌 0의 정확한 표현이 가능

1의 보수에서 0은 2진법 4비트로 표현했을 때, 0000과 보수인 1111 두 가지가 생긴다. 하지만 2의 보수로 0을 표현하면 0000 하나로 일치가 된다.

📌 2의 보수의 장점 

  • 2의 보수는 0을 0000으로만 표현한다.
  • 그러므로 -0의 공간이 남게 된다. 
  • 남은 공간에 -8을 할당하여 사용하게 된다.
  • 즉, 2의 보수는 1의 보수보다 한가지 수를 더 표현할 수 있게 된다는 것이다. 


📌 한가지 수를 더 표현할 수 있다는 것의 의미

  • 1의 보수보다 저장 효율이 더 좋다. 
    = 동일한 저장공간으로 더 많은 수의 표현이 가능해진다. 

  • 1의 보수보다 수의 표현 범위가 넓다.

  • 1의 보수보다 논리회로적인 측면에서 더 좋은 전기효율(전력)을 갖는다. 




profile
⛅🛩️ 먼 길을 돌아서 온 프론트엔드 개발자 ✈️⛅

0개의 댓글