23.12.2011, 11:14
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Сообщение от melky
|
проверку на нечётность не напоминает ? таким образом , <число> & 1 эквивалентно проверке числа на нечётность. (<число> % 2)
|
Особое спасибо за вот этот момент.
|
|
23.12.2011, 11:17
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
я опустил такие уточнения, вроде "Boolean(1) будет true". надеюсь, всем будет понятно то, что я описал.
PS. кстати, имя темы говорит об увеличении производительности в 20 раз, а на практике коэффициент меняется от 1.82 (FF) до 2.5 (CH)
Последний раз редактировалось melky, 23.12.2011 в 11:22.
|
|
23.12.2011, 11:37
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
melky, жаль не могу плюсануть рейтиг за столь исчерпывающий пост, форум не позволяет. Хотел бы кое-что добавить по сдвигам.
alert(16 >> 1); // 16 / 2
alert(16 << 1); // 16 * 2
Насколько мне известно, побитовые сдвиги - одни из самых быстрых операций в компутере
Сообщение от melky
|
PS. кстати, имя темы говорит об увеличении производительности в 20 раз, а на практике коэффициент меняется от 1.82 (FF) до 2.5 (CH)
|
Да эт сразу понятно было, что утка.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 23.12.2011 в 11:41.
|
|
23.12.2011, 11:46
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от melky
|
похоже на итератор (--,++)
|
Что? a >> i — деление a на 2^i с отбрасыванием остатка же.
Последний раз редактировалось B@rmaley.e><e, 23.12.2011 в 12:18.
|
|
23.12.2011, 12:21
|
Аспирант
|
|
Регистрация: 27.10.2011
Сообщений: 43
|
|
Да наверно перегнул, посмотрев на их результаты, но в любом случаем чем больше данных обрабатываем тем больше и прирост
|
|
23.12.2011, 12:38
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
melky, что ж вы как декремент обидели. Он может быть в 2-2.5 раза быстрее.
function stringFill2(x, n){
var s = x, needLength = x.length * n;
while(s.length < needLength)
s += s;
return s.substr(0,needLength);
}
Хотя это уже и не декремет вовсе получается, блин...
Но этот способ не так сильно отстаёт от побитового.
Последний раз редактировалось GuardCat, 23.12.2011 в 12:43.
|
|
23.12.2011, 12:52
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
В продолжении темы
Сообщение от melky
|
операция <число> & 1 будет возвращать 1 для тех чисел, у которых последняя цифра (1 для 5, 0 для 4) совпадает с 1
|
Думаю, в данном случае, это можно обозвать как "проверка бит по маске", хотя чаще используют их сброс или установку. Не самый удачный пример, но тем не менее
// Преобразование строки (lat.) в верхний регистр с помощью побитового оператора и (&), т.е. сброс бит по маске
// ----------------------
// имеем символ "a", код: 01100001 (97)
// сброс бит по маске: 11011111 (223)
// итог - символ "A", код: 01000001 (65)
// ----------------------
var x = prompt("Введите тект английскими буквами в нижнем регистре", "melky")
for(var j = [], i = 0; i < x.length; i++) {
j[i] = x.charAt(i).charCodeAt(); // получить символ и его код
j[i] &= 223; // сброс бит по маске 11011111 (двоичное представление числа 223)
j[i] = String.fromCharCode(j[i]); // получить символ из таблицы Unicode-символов
}
alert(j.join(""));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 23.12.2011 в 12:56.
|
|
23.12.2011, 18:16
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от B@rmaley.e><e
|
Что? a >> i — деление a на 2^i с отбрасыванием остатка же.
|
ключевые слова похоже и итератор
спасибо. не знал!
|
|
26.03.2012, 12:32
|
Аспирант
|
|
Регистрация: 27.10.2011
Сообщений: 43
|
|
А есть ли возможность перевести поиск по тексту на такой принцип? и будет ли он эффективнее регулярных выражений?
|
|
26.03.2012, 16:19
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от m4gz
|
А есть ли возможность перевести поиск по тексту на такой принцип?
|
Посимвольным считыванием потока данных занимаются конечные автоматы
|
|
|
|