Marat Dukhan | 2ab3ccb | 2017-04-16 08:46:37 -0400 | [diff] [blame] | 1 | #pragma once |
2 | |||||
3 | #include <stdint.h> | ||||
4 | |||||
5 | |||||
6 | inline static uint32_t bit_length(uint32_t n) { | ||||
7 | const uint32_t n_minus_1 = n - 1; | ||||
8 | if (n_minus_1 == 0) { | ||||
9 | return 0; | ||||
10 | } else { | ||||
11 | return 32 - __builtin_clz(n_minus_1); | ||||
12 | } | ||||
13 | } |