Javascript.RU

Голосование: Побитовые операторы
Открытый опрос: другие пользователи будут видеть, кто как проголосовал.
Опции опроса
Побитовые операторы

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2014, 08:02
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

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]));
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2014, 08:28
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

В основном использую побитовое ИЛИ для использования битовых масок, а остальные операторы как правило только при реализации конкретных алгоритмов, где они используются.
__________________
kobezzza
code monkey
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2014, 08:37
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Не могу сказать, что прям уж часто, но бывают такие кейсы:
n | 0
n & 0
~n
n >> ...
n << ...
n & (n - 1)
n |= ...
n &= ...
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2014, 10:17
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от dmitry111
getIntNumber
Ну и зачем этот велосипед?

Есть же родное:
parseInt('15.343', 10)



Сообщение от dmitry111
являются очень производительными!
В js? можно ссыль на тесты?

ИМХО, экономия на спичках и доп.затраты на распутывание кода.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2014, 10:33
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Единственное прикольное применение это табличка доступов(access) и упаковка ее в число. В остальном побитовые используются в алгоритмах. Например https://github.com/drench/blowfish.j...er/blowfish.js - нужны они там или нет, я хз. Но в js побитовые не очень нужны.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2014, 10:44
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

var is_browser = false;
is_browser |= typeof window !== 'undefined'

alert(is_browser && 'Это браузер');



Последний раз редактировалось monolithed, 07.04.2014 в 10:47.
Ответить с цитированием
  #7 (permalink)  
Старый 07.04.2014, 10:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от dmitry111
Побитовые операторы применяются редко, однако они являются очень производительными!
брехня.

тут пара человек должна знать секрет мелкой скорости работы всех бинарных операторов.

я могу подсказать - читай либо исходники движка, либо спецификацию

я пытался оптимизировать логику через бинарные операторы ... и я получил замедление.
http://jsperf.com/bitwise-vs-boolean

Сообщение от Gozar
В js? можно ссыль на тесты?
тучи сгущаются

Последний раз редактировалось melky, 07.04.2014 в 10:52.
Ответить с цитированием
  #8 (permalink)  
Старый 07.04.2014, 11:02
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от melky
тучи сгущаются
тучи смущаются А тучи как люююди

<iframe width="420" height="315" src="//www.youtube.com/embed/jE1ynO9LxJ4" frameborder="0" allowfullscreen></iframe>
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #9 (permalink)  
Старый 07.04.2014, 15:45
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от Gozar Посмотреть сообщение
Ну и зачем этот велосипед?

Есть же родное:
parseInt('15.343', 10)




В js? можно ссыль на тесты?

ИМХО, экономия на спичках и доп.затраты на распутывание кода.

http://jsperf.com/parseint-vs-bitwise-int
Ответить с цитированием
  #10 (permalink)  
Старый 07.04.2014, 16:39
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

dmitry111, ты забыл:

testnum | 0
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
примеры неработают avrudoi Элементы интерфейса 1 13.02.2014 16:42
Примеры создания компонента типа TreeList donotarrestme Элементы интерфейса 4 24.07.2013 10:52
Делал ли кто нибудь? Есть ли примеры? Владимир Седов Элементы интерфейса 2 18.02.2011 21:36
Подскажите материал, примеры с поямнением Мендыбаев Игорь Учебные материалы 4 27.01.2011 19:48