3.14(수) Shift연산자

from Study/C언어 2007/03/14 23:32 view 24110
매번 느끼지만 이놈의 쉬프트 연산자는 감이 도통 잡히지 않는다. 왜냐.. 평소에 연산작업을

할 때 10진법을 주로 사용하므로 비트연산을 하는 이놈의 연산자는 친숙하지 않기 때문이다.

그래픽 쪽 프로그래밍 할때는 필수적(마스크나 반전,복원등)이라고 하나 해본적이 있어야지..

하지만 CPU입장에서 a*2를 한번 할 시간에 a<<1를 10번정도 할수 있다는 것은 큰 매리트가

아닐까 싶다.
 
 쉬프트 연산이 곱셈에 비해 불리한 점은 2의 거듭승에 대해서만 곱셈이 가능하다는 점이다.

2배,4배,8배,16배 등만 할 수 있으니 얼마나 불편한 일인가...

3배 : a << 1 + a;
9배 : a << 3 + a;
15배: a << 4 - a;
60배: a << 6 - a << 2;  //64배에서 4배를 제한 60배...와

속도가 중요하다면 이런 코드들도 욕심 부려 볼만 하지 않을까..

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다