VC 컴파일러 기준. (int형의 경우)


이 때 int형은 signed라고 가정.


(unsigned의 경우는 무조건 논리 쉬프트 연산을 하게 됨. 부호 안따지고 걍 단순하게 쉬프트 하는것.)



<<연산을 하는 경우 :


양수건 음수건 MSB를 포함해서 왼쪽으로 밀리고, 오른쪽의 비는 비트는 0으로 채워짐

단 한번에 32칸 이상 미는경우 circular shift가 되어버림. (-1을 왼쪽으로 한번에 32칸 밀면 다시 -1이됨)


>>연산을 하는 경우 :

양수의 경우 : MSB를 포함해서 오른쪽으로 밀리고, 왼쪽의 비는 비트는 0으로 채워짐

음수의 경우 : MSB를 유지하는 시스템의 경우 오른쪽으로 밀린만큼 왼쪽의 비는 비트는 1로 채워짐.

단 한번에 32칸 이상 미는경우 양수든 음수든 둘다 circular shift가 됨.

-----------------------------------------------------------------------------------------

char의 경우에는 int형의 경우와 같지만 circular shift 문제가 발생하지 않는다.





Posted by huammmm1
,