• Почему в JS 3232286728 & (-256) = -1062680576?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Для поразрядных операций JS приводит числа к Int32 (знаковому), и, например, 3232286720 в этот диапазон не влазит, оно считается отрицательным из-за единичного старшего бита.

    Чтобы посмотреть, как оно работает, открой консоль браузера, и создай 2 массива:
    var a = new Uint32Array(1);
    var b = new Int32Array(a.buffer);
    
    a[0] = 3232286728;
    
    console.log(b[0]);
    Ответ написан
    Комментировать