Здравствуйте,не понимаю,почему alert( Math.pow(2, 31) ^ 0 );
дает результат -2147483648.
Почему происходит переполнение?
p.s. 1000...^0000...=1000...
Потому что в js побитовые операторы работают с 32битным числами со знаком.
Число 2^31 выходит за ограничения 32битной записи со знаком.
2 ^ 31 = 10000000000000000000000000000000 = -2147483648
| - это знак
2^31 - 1 = 01111111111111111111111111111111 = 2147483647
console.log( (2 ** 31).toString(2).length); // 32 порядка. первый бит - знак.
console.log( (2 ** 31 - 1) ^ 0); // 31 единица, всё еще нормально
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Правильно ли размещать javascript-код в вьюшках где лежит PHP код или его надо размещать где то в другом месте?
Как вывести сумму нечетных чисел циклом от 11 до 30 do-while на PHP
Делаю проверку на палиндром, но с русскими символами, что то не такПочему кодировка кривая? Кто то подскажет ?
Учусь делать самую простую систему сообщений, между двумя пользователями, где на сообщение можно ответить только 1 раз и это сообщение и ответ,...