Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

On a related note, almost any task around shuffling or shifting bits can be improved with xor. For example the straightforward way to remove bit i is

    mask = -1 << i;
    return (x & ~mask) | ((x >> 1) & mask);
but with xor we can do it in one less instruction:

    mask = -1 << i;
    return ((x ^ (x >> 1)) & mask) ^ x;




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: