x = k >> -e // 이건 뭐 어쩌자는 건지? c++ 소스 중에 오늘 위와 같은 형식의 shift 연산을 보고 결과가 궁금해서 테스트를 해봤다. 결론은 shift 연산자 우측에 음수가 오면 무조건 0 즉 -e 이렇게 쓴것은 e 의 값이 음수라는 이야기 이다. #include "stdafx.h" template<typename T> void test_minus_shift(T value) { //T value = 1; T nShfitLeft = value << 1; T nShfitLeftMinus = value << -1; T nShfitRight = value >> 1; T nShfitRightMinus = value >> -1; } int _tmain(int argc, _TCHAR* argv[]) { test_minus_shift<int>(1); // nShfitLeft=2, nShfitLeftMinus=-21474836, nShfitRight=0, nShfitRightMinus=0 test_minus_shift<int>(8); // nShfitLeft=16, nShfitLeftMinus=0, nShfitRight=4, nShfitRightMinus=0 test_minus_shift<int>(0xfc31); // nShfitLeft=129122, nShfitLeftMinus=-21474836, nShfitRight=32280, nShfitRightMinus=0 test_minus_shift<unsigned>(1); // nShfitLeft=2, nShfitLeftMinus=21474836, nShfitRight=0, nShfitRightMinus=0 test_minus_shift<unsigned>(8); // nShfitLeft=16,...