Манипуляции с битами в JS

Рассмотрим три операции — установка нужного бита в числе, сброс бита и инверсия.

У нас есть число N и номер бита i. Номер бита нумерует биты, начиная с нуля.

Прежде всего нам понадобится маска, с помощью которой мы произведем нужную нам операцию.

Это будет работать для 32-битных целых. Напоминаю, что в JS максимальная величина целого числа — 53 бита.

Установка бита

Следующая операция установит i-й бит:

Сброс бита

Следующая операция сбросит бит:

Переключение (инверсия) бита

Следующая операция инвертирует состояние i-го бита:

Мало букафф? Читайте есчо !

Сообщение Cannot read property 'msie' of undefined

Апрель 13, 2017 г.

Два вероятных случая могут генерировать данное сообщение в консоли браузера. Раннее обращение к js плагину Те или иные свойства могут быть недоступны, если вы обращаетесь к методам и свойствам до того как они определены. В данном случае обращение ...

Читать

Как сделать кликабельные ссылки внутри SVG при использовании Fancybox

Июнь 21, 2025 г.

Когда вы используете Fancybox для отображения изображений, SVG и других медиа-объектов, возникает интересная проблема: если внутри SVG находятся ссылки (<a>), они перестают работать. Почему? Потому что Fancybox «перехватывает» клик, и вы не попадаете ...

Читать

Пара способов добраться до индекса родительского цикла ng_repeat в Angular

Ноябрь 18, 2016 г.

Если вы начали применять вложенные циклы ng_repeat, но не сильно вникали как это работает, то могли столкнуться с проблемой видимости итератора внешнего цикла во внутреннем. В контексте цикла Angular создает несколько переменных, одна из них - ...

Читать

Многострочные константы в js

Сентябрь 19, 2018 г.

JavaScript в web был когда то всего лишь приятным дополнением. А сейчас сложно найти сайт, который не использует скрипты. А если уж часть шаблона формируется скриптом, то без много-строчных констант не обойтись. Но в javascript с ними не так все ...

Читать
 

Комментарии к «Манипуляции с битами в JS»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: