Я просматривал код на С++ и нашел что-то вроде этого:
(a + (b & 255)) & 255
Двойной И раздражал меня, поэтому я подумал:
(a + b) & 255
(a
и b
- 32-разрядные целые числа без знака)
Я быстро написал тест script (JS), чтобы подтвердить мою теорию:
for (var i = 0; i < 100; i++) {
var a = Math.ceil(Math.random() * 0xFFFF),
b = Math.ceil(Math.random() * 0xFFFF);
var expr1 = (a + (b & 255)) & 255,
expr2 = (a + b) & 255;
if (expr1 != expr2) {
console.log("Numbers " + a + " and " + b + " mismatch!");
break;
}
}