728x90
'
Shift Operation 에는 Left Shift 와 Right Shift 가 있고 그 중 Right Shift에는 2가지 종류의 Shift 가 있습니다.
Logtical Shift 는 단순히 0을 채워 넣는 것이고 Arithmetic Shift 는 MSB(most significant bit)를 복제하여 아래 그림과 같이
sign bit 가 그대로 하나 내려가고 오른쪽으로 Shift 된다는것을 알 수 있습니다.
처음에 단순히 Sign Bit는 고정된체 나머지 비트만 Logical Shift 를 하는 것 인지 알았는데 위키검색을 통해 알아보니 이렇게
취한다는걸 알게되어 포스팅합니다.
요약하면,
Arithmetic Shift Right 을 하면 Sign bit가 그대로 하나 복제되어 내려갑니다.
Arithmetic Shift Left 을 하면 오버플로우(Overflow) 가 발생할 수 있다는 것.
(그림. 위) Arithmetic shift 와 (그림. 아래) Logical shift 의 차이
Argument x : 10100010
<< 3 : 00010000
Log. >> 2 : 00101000
Arith. >> 2 : 11101000
Arithmetic Shift Right >> 2 과정입니다.
1 0 1 0 0 0 1 0
↓↘
1 1 0 1 0 0 0 1
↓↘
1 1 1 0 1 0 0 0
'
728x90
'로그[log] > 컴퓨터공학' 카테고리의 다른 글
MSB, LSB ... (0) | 2014.07.23 |
---|---|
VI / VIM 단축키 모음. (0) | 2014.07.23 |
최근댓글