비트연산시 오른쪽 시프트 사용 질문입니다.

익명 사용자의 이미지

안녕하세요

-8 >> 2 하면요

1111 1000 >> 2
??11 1110 가 되잖아요
그럼 ?? 를 부호비트 (1) 로 채우면
1111 1110 이 되는데요
결과값이 -2 라고 책에 나와있네요...
어떻게 -2가 되나요?

익명 사용자의 이미지

안녕하세요...

0000 0000 => 0
1111 1111 => -1
1111 1110 => -2
1111 1101 => -3
...
1000 0000 => -256

_ 信

익명 사용자의 이미지

어떻게 이렇게 될까?

부호 비트만 빼고, 다 같은거 아녔남?

익명 사용자의 이미지

드디어 1학기에 배운게 나왔네요 ^^;

답변하는게 이렇게 즐거운거군요!

0000 0001 -> 1

이건 2의 보수로 만들려면.

1111 1110로 다 바꾼 다음에

마지막에 1을 더해주면 1111 1111이 되죠~

이게 음수입니다.

앞의 부호가 바뀌는건 소수가 있는 수일때죠.

익명 사용자의 이미지

앗.. 2의보수를 쓴다는 걸 까먹었었네요.. ㅡㅜ..

봐도 까먹는건 왜일까..

익명 사용자의 이미지


^^