Hello, I'm looking for a function that takes an unsigned number and returns the number of binary digits needed to represent the number in binary.

For example, the number 36 is 100100 in binary (or is it 001001?) and thus has 6 digits. Hence, the function I'm looking for takes 36 as an argument and returns 6.

Also, suppose the function/macro is called DIGIT_FIND, is the following legal C code?
Code:
unsigned max_value_of_36: DIGIT_FIND(36);