게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
간단한!! 비트연산자 원리해석 질문좀...
게시물ID : computer_112131짧은주소 복사하기
작성자 :
추천 : 0
조회수 : 700회
댓글수 : 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형으로 실험하였습니다.)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호