Arithmetic Shift 와 Logical Shift...

로그[log]/컴퓨터공학 2014. 7. 23. 22:53



파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
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