Bitwise Operators (примеры)
Побитовые операторы применяются редко, однако они являются очень производительными!
Используете? Поделитесь примерами с использованием побитовых операторов. Вот где использовал я: // переводит в целое число из строки function getIntNumber(str) { return ~~str; } alert(getIntNumber('15.343')); // проверяет массив на наличие единиц function checkArray(arr) { var str = arr.join(''); if (~~str) { return true; } else { return false; } } alert(checkArray([0,0,0,0,0,1,0])); alert(checkArray([0,0,0,0,0,0,0])); |
В основном использую побитовое ИЛИ для использования битовых масок, а остальные операторы как правило только при реализации конкретных алгоритмов, где они используются.
|
Не могу сказать, что прям уж часто, но бывают такие кейсы:
n | 0 n & 0 ~n n >> ... n << ... n & (n - 1) n |= ... n &= ... |
Цитата:
Есть же родное: parseInt('15.343', 10) Цитата:
ИМХО, экономия на спичках и доп.затраты на распутывание кода. |
Единственное прикольное применение это табличка доступов(access) и упаковка ее в число. В остальном побитовые используются в алгоритмах. Например https://github.com/drench/blowfish.j...er/blowfish.js - нужны они там или нет, я хз. Но в js побитовые не очень нужны.
|
var is_browser = false; is_browser |= typeof window !== 'undefined' alert(is_browser && 'Это браузер'); :D |
Цитата:
тут пара человек должна знать секрет мелкой скорости работы всех бинарных операторов. я могу подсказать - читай либо исходники движка, либо спецификацию :) я пытался оптимизировать логику через бинарные операторы ... и я получил замедление. http://jsperf.com/bitwise-vs-boolean Цитата:
|
Цитата:
<iframe width="420" height="315" src="//www.youtube.com/embed/jE1ynO9LxJ4" frameborder="0" allowfullscreen></iframe> |
Цитата:
http://jsperf.com/parseint-vs-bitwise-int |
dmitry111, ты забыл:
testnum | 0 |
Часовой пояс GMT +3, время: 18:49. |