2013-07-31 5 views

답변

1

나는 최선의 방법은 본질적으로 룩업 테이블 인 if-then-else 체인으로 코드화하는 것입니다. 로그 천천히 성장하기 때문에

(ite (< x 2) 0 
    (ite (< x 4) 1 
      (ite (< x 8) 2 
      .... etc ... 

, 당신은 등 32 비트 벡터 32 가지, 다른 기지 유사하다 만이 필요한 것 : 기본-2를 가정하면, (lg 0 = 0 가정) 같은이있을 것이다. 자동으로이 코드를 쉽게 생성 할 수 있습니다.

+0

비트 마스크를 사용하여 가장 왼쪽에 설정된 비트의 인덱스를 계산하여 동일하게 구현할 수도 있습니다. (즉, 4 비트 벡터를 가정 할 때, 비트 단위 -와 1000 그리고 결과가 0이 아닌 경우 대수는 3, 그렇지 않으면 비트 단위 - 그리고 01000은 2가되는 등) 당신은 위의 솔루션에 비해 더 나은 아무것도; 그러나 위의 방법이 효과가 없다면 시도해 볼 가치가 있습니다. –