System/Linux Kernel

커널에서 원하는 값을 가지고오기 위해 clz를 하는 이유

김지밍 2016. 1. 16. 17:43




clz :  0의 갯수를 셈


일반적으로 clz을 하면 0의 갯수를 세서 시프트 하려고 사용함

그러면 원하는 값을 얻을 수 있도록 리눅스는... 그렇게 사용함


가령.. 

way의 갯수가 4개라 값이 3일때, 


현재 way의 값을 알고싶을때, 

이때 clz를 해서 14만큼 시프트연산을 수행하면 내가 원하는 값인 3이 나오게 됨



a = 0b 0000 0000 0000 0011이다.

b = 14

a << b = 0b 1100 0000 0000 0000