ntzloops.adl
1 2 program test.alpha { 3 // The 'ntzloops' main function. 4 // From Hacker's Delight 2nd ed. figure 5-23 5 transition main(public x: u32) -> u8 { 6 x = !x & x.sub_wrapped(1u32); 7 let n: u8 = 0u8; 8 for i:u8 in 0u8..32u8 { 9 if x != 0u32 { 10 n += 1u8; 11 x = x >> 1u8; 12 } 13 } 14 return n; 15 } 16 }