dsalgo/
least_significant_bit_from_lsb_number.rs

1pub fn lsb(n: u64) -> usize {
2    assert!(n > 0);
3
4    let n = n as isize;
5
6    (n & -n).trailing_zeros() as usize
7}
8
9#[cfg(test)]
10
11mod tests {
12
13    use super::*;
14
15    #[test]
16
17    fn test() {
18        let cases = vec![(1, 0), (0b01010, 1)];
19
20        for (n, ans) in cases {
21            assert_eq!(lsb(n), ans);
22        }
23    }
24}