static int countDifferingBits(byte[] array1, byte[] array2) { int n = array1.length; int diff = 0; for i to n: diff += popCount(ubyteToInt(array1[i])^ubyteToInt(array2[i])); ret diff; } static int countDifferingBits(int[] array1, int[] array2) { int n = array1.length; int diff = 0; for i to n: diff += popCount(array1[i]^array2[i]); ret diff; } static int countDifferingBits(long[] array1, long[] array2) { int n = array1.length; int diff = 0; for i to n: diff += popCount(array1[i]^array2[i]); ret diff; }