Для поразрядных операций JS приводит числа к Int32 (знаковому), и, например, 3232286720 в этот диапазон не влазит, оно считается отрицательным из-за единичного старшего бита.
Чтобы посмотреть, как оно работает, открой консоль браузера, и создай 2 массива:
var a = new Uint32Array(1);
var b = new Int32Array(a.buffer);
a[0] = 3232286728;
console.log(b[0]);