unsigned s=555;
int i=(s>>4)&~(~0<<3);
cout<<"값 = "<<i<<endl;
이렇게 입력하고 컴파일하면 값이 2가나오는데요 왜 2가나오는지 궁금합니다
진행 과정좀 자세하게 설명해주실분 없나요!
궁금합니다!
int i=(s>>4)&~(~0<<3);
cout<<"값 = "<<i<<endl;
이렇게 입력하고 컴파일하면 값이 2가나오는데요 왜 2가나오는지 궁금합니다
진행 과정좀 자세하게 설명해주실분 없나요!
궁금합니다!
궁금한거임 숙제임? 555 는 이진수로 ... 0000 0010 0010 1011 이고 이걸 right shift 4번 하면 [... 0000 0000 0010 0010] 가 됨, ~0 =... 1111 1111 1111 1111 이므로 (~0 << 3) 은 ... 1111 1111 1111 1000 가 되고, 여기 다시 ~ 하면 [... 0000 0000 0000 0111] = 임, [대괄호 친 두 중간 결과를 서로 & 하면 ... 0000 0000 0000 0010 이므로 10진수로 바꾸면 2