function isEvenParity8bit(value) {
let cnt = 0;
for (let i = 0; i < 8; i++) {
if ((value >> i) & 1) cnt++;
}
return cnt % 2 == 0;
}
let cnt = 0;
for (let i = 0; i < 256; i++) {
if (isEvenParity8bit(i)) cnt++;
}
if (cnt !== 128) throw new Error();
function isEvenParity8bit(value) {
value = (value & 0x55) + ((value & 0xaa) >> 1);
value = (value & 0x33) + ((value & 0xcc) >> 2);
value = (value & 0x0f) + ((value & 0xf0) >> 4);
return value % 2 == 0;
}
let cnt = 0;
for (let i = 0; i < 256; i++) {
if (isEvenParity8bit(i)) cnt++;
}
if (cnt !== 128) throw new Error();
function isEvenParity8bit(value) {
value ^= value >> 1;
value ^= value >> 2;
value ^= value >> 4;
return !(value & 1);
}
let cnt = 0;
for (let i = 0; i < 256; i++) {
if (isEvenParity8bit(i)) cnt++;
}
if (cnt !== 128) throw new Error();