쉬프트 연산자 이해가 잘 안됩니다.

미해결질문
신사과 프로필

중 후반에 칠판에 적는 듯한 소리가 났는데 어떤 걸 적으셨는지.. 모르겠습니다.

int iHigh = 187;

int iLow = 13560;

int iNumber = iHigh;

iNumber <<= 16; // 187 0000 0000 0000 0000

// 187 = 1011 1011

// 즉 iNumber<<=16은 1011 1011 0000 0000 0000 0000 이고

// iLow=13560;은 0011 0100 1111 1000 이고

iNumber |= iLow; // 를 하면 OR이여서 1011 1011 0011 0100 1111 1000 이 되고

cout << "High: " << (iNumber >> 16) << endl; // 뒤에서 영(0)을 16개 날려보내면 1011 1011 만 남으니까 187 이고

cout << "Low: " << (iNumber & 0x0000ffff) << endl;

// 1011 1011 0011 0100 1111 1000

// 0000 0000 1111 1111 1111 1111

// 0000 0000 0011 0100 1111 1000 이 되니까 13560 이 되는 것이군요??
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스