본문 바로가기

코드^학습/메모한 지식

까먹었었던 2의 보수 되살리기



위의 코드를 보시면 아시겠지만 && 이 아닌 비트 연산자인 &이 사용되었습니다.


결과가 뭐로 뜰까요?


아시는 분들은 제목만 보고 [훗!] 하실 것입니다.

2의 보수를 까먹었었던 저로서는 단순히 부호비트만 생각해서 머릿속으로 연산해버리고는

12! 라고 답했습니다. 어리석었죠..ㅋㅋ


2의 보수를 배웠음에도 이를 적용하지 않다니...

우리가 배우는 PC구조는 2의 보수를 사용한 연산을 함에도 말이죠


결과화면을 띄워보겠습니다.



4! 4입니다! 왜 그런지는 아시겠나요?ㅎㅎ 저는 종이에 직접 적어보고나서야 이해했습니다.

안다고 생각했는데 뒤통수를 데엥하고 맞은 기분이네요...


p.s.2016-01-12

-12는 1111 1111 1111 1111 1111 1111 1111 1111 (끊고) 1111 1111 1111 1111 1111 1111 1111 0100이고

12는 0000 0000 0000 0000 0000 0000 0000 0000 (끊고) 0000 0000 0000 0000 0000 0000 0000 1100이기 때문이죠.

(64비트로 적으려니 기네요...)