Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.12.2015, 20:50
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

laimas,
вообщем после
Сообщение от laimas
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
я понял что мне надо посмотреть , спасибо.
Ответить с цитированием
  #12 (permalink)  
Старый 11.12.2015, 20:54
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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

Вот пару примеров, как делать не нужно:

~str.indexOf('str')
foo ^= 1


А ниже правильные аналоги:

str.indexOf('str') != -1 или indexOf('str') + 1
foo = !foo

Последний раз редактировалось ruslan_mart, 11.12.2015 в 21:24.
Ответить с цитированием
  #13 (permalink)  
Старый 11.12.2015, 20:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну да, все просто. А почему при проверки четности выгодно использовать AND, а нечетности XOR, предлагаю догадаться самому.
Ответить с цитированием
  #14 (permalink)  
Старый 11.12.2015, 20:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ruslan_xDD
В данном случае лучше использовать деление по модулю, так это более правильный подход, нежели использование побитовых операций не по назначению.
Это из каких побуждений такой постулат?
Ответить с цитированием
  #15 (permalink)  
Старый 11.12.2015, 21:18
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Ruslan_xDD,
спасибо
Ответить с цитированием
  #16 (permalink)  
Старый 11.12.2015, 21:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ruslan_xDD
побитовые операторы лучше использовать там, где они действительно нужны, например при работе с бинарными данными.
По вашему так число, это не бинарные данные, и делениями занимается на аккумулятор процессора, а JS делит сама как-то и исключительно, как строки что ли? Ну что за глупости, в компьютере все бинарное в итоге, а как трактовать то или иное мы указываем. Но если делить, то делить число на другое число, затем проверить остаток, его анализ, установка флага и выдача результата. И все это процессор. А логическая операция (пугать не надо побиностью, в представлении машины, это просто), загрузка числа в аккумулятор и в данном случае проверка только младшего разряда, установка флага и все.


Что то вы нагородили много пугающего.
Ответить с цитированием
  #17 (permalink)  
Старый 11.12.2015, 21:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

laimas, это дело стиля кода, не более.

В некоторых ситуациях это гораздо проще, не спорю. Но если писать по стилю, то использовать побитовые операторы не нужно в таких ситуациях. К тому же, это портит сам код в плане понимания. Где-то даже видел статью на харбе по этому поводу.

Я сам раньше использовал побитовые операторы в условиях и т.д., но со временем пришёл к выводу, что лучше так делать не стоит.

Последний раз редактировалось ruslan_mart, 11.12.2015 в 21:52.
Ответить с цитированием
  #18 (permalink)  
Старый 11.12.2015, 22:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ruslan_xDD
Но если писать по стилю, то использовать побитовые операторы не нужно в таких ситуациях. К тому же, это портит сам код в плане понимания. Где-то даже видел статью на харбе по этому поводу.

Это вы уже о вкусах и красоте, а к компьютерным делам, это отношения не имеет. Нет чисел "не бинарных" на компьютере, как и нет на нем строк, десятичных чисел, шестнадцатеричных и прочего, все только бинарное. Мы определяем трактовать то или иное в том или ином виде, а любому языку придется все это перелопачивать в удобоваримое для компьютера, и чем больше лишнего, тем дольше ему ворочаться, а компьютеру париться.

Любой язык обладает набором логических операций, которые можно и нужно использовать. А что не понятно, ну так это как понимать суть написанного, кому то понятно "мама мыла раму", кому только "мама (человек в платье, женщина) мыла (водой с мылом) раму (оконную)". Все остальное надуманное донельзя.
Ответить с цитированием
  #19 (permalink)  
Старый 11.12.2015, 22:36
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Сообщение от Mess4me Посмотреть сообщение
yazonnile,
стилями не знаю как ) надо смотреть )
Я же оставил ссылку
http://jsfiddle.net/rhq1ynsq/1/
Ответить с цитированием
  #20 (permalink)  
Старый 12.12.2015, 11:34
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

yazonnile,
аа ... не увидел . Пардон)
Ответить с цитированием
Ответ



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

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