Skip to content

Instantly share code, notes, and snippets.

@karataev
Created December 1, 2017 18:11
Show Gist options
  • Save karataev/88cd32a44942bdace3b3c2db1be7afa8 to your computer and use it in GitHub Desktop.
Save karataev/88cd32a44942bdace3b3c2db1be7afa8 to your computer and use it in GitHub Desktop.
Разница в количестве битов двух чисел
function leftPad(str, num) {
if (str.length >= num) return str;
var pad = new Array(num - str.length + 1).join('0');
return pad + str;
}
function bitsDiff(a, b) {
var aBin = a.toString(2);
var bBin = b.toString(2);
var max = Math.max(aBin.length, bBin.length);
aBin = leftPad(aBin, max);
bBin = leftPad(bBin, max);
var result = 0;
for (var i = 0; i < aBin.length; i++) {
if (aBin[i] !== bBin[i]) result++;
}
return result;
}
console.log(bitsDiff(71, 15));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment