1 unsigned good(unsigned src,unsigned o5,unsigned w5)2good (unsigned src, unsigned o5, unsigned w5) 3 { 4 return src & ~((w5 == 0) ? (~0 << o5) : (1 << o5)); 5 } 6 7 unsigned bad(unsigned src,unsigned o5,unsigned w5)8bad (unsigned src, unsigned o5, unsigned w5) 9 { 10 return src & ((w5 == 0) ? ~(~0 << o5) : ~(1 << o5)); 11 } 12 13