Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn lzc<T: std::ops::Shl::<Output = T> + From::<u8> + std::cmp::PartialEq + std::ops::BitAnd<Output = T> + Copy>(mut x: T) -> u8 {
- let n: u8 = (size_of::<T>() * 8) as u8;
- let first_bit: T = T::from(1_u8) << T::from(n - 1);
- if x == T::from(0_u8) {
- return n;
- }
- let mut cnt: u8 = 0;
- while (x & first_bit) == T::from(0_u8) {
- cnt += 1;
- x = x << T::from(1_u8);
- }
- return cnt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement