Добавлено: 26 мар 2007, 10:45
а чего не догоняю я когда пишу типа
result &= array;
Безо всяких там многочисленных операций?
result &= array;
Безо всяких там многочисленных операций?
aissp писал(а):а чего не догоняю я когда пишу типа
result &= array;
Безо всяких там многочисленных операций?
У меня умеренное накануне употребление спиртного отбивает способность к полноценному мышлению на несколько последуюших дней.aissp писал(а):o да, по понедельникам до обада туплю не подеццки. Санкс
tiasur писал(а):Идея предложенная ajkj3em кажется единственной возможной, ну или хотя бы легко понятной.
попытаюсь вечером осилитьajkj3em писал(а):tiasur писал(а):Идея предложенная ajkj3em кажется единственной возможной, ну или хотя бы легко понятной.
sz прав, меня там взглюкнуло, i^(i-1) выставляет верхний бит только для нуля
хехе .. нет, он таки не прав 0x80000000 --- i^(i-1) ---> 0xfffffffftiasur писал(а):попытаюсь вечером осилитьajkj3em писал(а):tiasur писал(а):Идея предложенная ajkj3em кажется единственной возможной, ну или хотя бы легко понятной.
sz прав, меня там взглюкнуло, i^(i-1) выставляет верхний бит только для нуля
Хех. Поймал. Неправ, фактическиajkj3em писал(а):хехе .. нет, он таки не прав 0x80000000 --- i^(i-1) ---> 0xfffffffftiasur писал(а):попытаюсь вечером осилитьajkj3em писал(а):tiasur писал(а):Идея предложенная ajkj3em кажется единственной возможной, ну или хотя бы легко понятной.
sz прав, меня там взглюкнуло, i^(i-1) выставляет верхний бит только для нуля
я тут псевдо-теоретическое обоснование придумал :)sz писал(а):Хех. Поймал. Неправ, фактически :)
Я еще много страниц назад пытался умножать на минус единицу, но это работает для положительных чисел. А вот так красиво складывать отрицательные с положительными не дошло до меняajkj3em писал(а):я тут псевдо-теоретическое обоснование придумалsz писал(а):Хех. Поймал. Неправ, фактически
все по-битовые операции работают "однородно" для всех значений int.
то есть если нам надо поймать именно ноль, то нужно использовать
операцию, в которой ноль являетcя "особенным значением" (если
смотреть на биты input'а и output'а). из "легких" операций такой явлаетcя
только минус .. отcюда и пляшем.
Да, я тоже подумал о том, чтобы дописать ноль в конец массива. Заменить последний элемент на ноль даже лучше.Baguk писал(а):Оптимизация поиска проста: проверяется последний элемент на ноль. Если не ноль, то заменяется нулём. После этого вместо 2-х проверок (ноль или конец массива) надо проверять только на ноль. В 2 раза меньше сравнений.
Задача другая была.Azazello писал(а):Да, я тоже подумал о том, чтобы дописать ноль в конец массива. Заменить последний элемент на ноль даже лучше.Baguk писал(а):Оптимизация поиска проста: проверяется последний элемент на ноль. Если не ноль, то заменяется нулём. После этого вместо 2-х проверок (ноль или конец массива) надо проверять только на ноль. В 2 раза меньше сравнений.