드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
게시물ID : computer_112131짧은주소 복사하기
작성자 : 늬
추천 : 0
조회수 : 701회
댓글수 : 7개
등록시간 : 2013/09/12 21:58:45
비트연산자 '>>' 의경우 부호값(MSB)을 따라서 좌측부터 값을 채워나가는거 아닙니까?
그런데 과제중에 비트연산자써서 2의보수 최소값출력이 있었습니다.
그래서 혹시나 이게될까 싶어서 해봤는데 되는게 아닙니까?
왜그런거죠 ?
---------------------------------------------------------
~((0xFFFFFFFF<<1)>>1); // 2의보수 최소값 1000 0000 ~~~ 0000 이출력됩니다.
---------------------------------------------------------
위 소스가 올바로 작동한다는 얘기는 "0xFFFFFFFF<<1" 이후 ">>1"부분에서 0111 1111 ~~~ 1111 이렇게 채워졌다는 말인데...
원래대로라면 "0xFFFFFFFF<<1" 하면 "1111 1111~~~ 1110"이 채워지고 이후 ">>1"을 했을때 MSB를 따라서 다시 "1111 1111 ~~~ 1111"이 채워져야되는거 아닌가요 ?
제가 뭔가 잘못알고있는걸까요?
(아... 참고로 return은 int형으로 실험하였습니다.)
댓글 분란 또는 분쟁 때문에
전체 댓글이 블라인드 처리되었습니다.
새로운 댓글이 없습니다.