<비트연산자>
시프트 연산은 변수 << 이동할 비트 수 또는 변수 >> 이동할 비트 수 형식으로 사용합니다. 즉 지정한 횟
수대로 비트를 이동시키며 모자라는 공간은 0(음수면 1)으로 채웁니다. 연산자 모양 그대로 <<는 왼쪽 방
향으로 움직이는 연산자, >>는 오른쪽 방향으로 움직이는 연산자입니다.
예1) 0010(십진수 : 2)를 <<2하면 2비트 왼쪽이동 된다.
이동되는 방향은 화살표 방향이다.
시프트연산이라고 한다.
결과 : 1000(십진수 : 8)
예2) 0100(십진수 : 4)를 >>1하면 1비트 오른쪽이동 된다.
이동되는 방향은 화살표 방향이다.
시프트연산이라고 한다.
결과 : 0010(십진수 : 2)
응용문제) 11011001을 우측으로 산술이동 3회했을때 결과는 어떻게 되는지?
① 우측으로 3회 시프트연산한다.
[111]11011(001) -> 문제의 값이 음수이기때문에 앞에 값이 1로 채워지고(양수면 0으로 채워짐)
뒤의 값은 버려지게 된다. (괄호부분)
② 11111011 에서 2의 보수를 취해준다.
00000101 : 이 값을 10진수로 풀어주면 5가되고 음수이기때문에 -5가 된다.
'내 첫사랑! 컴퓨터 프로그래밍 > C는 나의 친구' 카테고리의 다른 글
더블포인터 (0) | 2018.02.09 |
---|---|
배열(Array) (0) | 2018.01.26 |
사용자 정의 함수로 원의 넓이 구하기 (0) | 2018.01.22 |
C++로 만든 삼국지게임 소스 (0) | 2017.09.06 |
C++로 만든 자동차게임 소스 (4) | 2017.09.06 |