Skip to content

Instantly share code, notes, and snippets.

@tleunen
Created February 3, 2013 17:55
Show Gist options
  • Save tleunen/4702818 to your computer and use it in GitHub Desktop.
Save tleunen/4702818 to your computer and use it in GitHub Desktop.
Function to reverse the bits of a given integer
function bitRev(N) {
var r = 0;
val = 0;
while(N > 0) {
val = N&1;
N >>= 1;
r += val&1;
r <<= 1;
}
r >>= 1;
return r;
}
@enkimute
Copy link

function reverse(bits) {   
    var  x=new Uint32Array(1); x[0]=bits; 
    x[0] = ((x[0] & 0x0000ffff) << 16) | ((x[0] & 0xffff0000) >>> 16);
    x[0] = ((x[0] & 0x55555555) << 1) | ((x[0] & 0xAAAAAAAA) >>> 1);
    x[0] = ((x[0] & 0x33333333) << 2) | ((x[0] & 0xCCCCCCCC) >>> 2);
    x[0] = ((x[0] & 0x0F0F0F0F) << 4) | ((x[0] & 0xF0F0F0F0) >>> 4);
    x[0] = ((x[0] & 0x00FF00FF) << 8) | ((x[0] & 0xFF00FF00) >>> 8);
    return x[0];
}

no loops .. no sign bit problems ..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment