суббота, 9 февраля 2013 г.

тест умножение на 0 и 1

— обзоры софта, железа, сервисов и т.п.;

— статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, выделением и другим бросающимся в глаза форматированием текста;

— статьи, ранее опубликованные на других сайтах;

С большой вероятностью не пройдут премодерацию:

В разделе действует премодерация: перед публикацией все материалы проходят через заботливые руки. Каждый одобренный модератором топик живет в «Песочнице» 14 дней.

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

В «Песочницу» попадают топики от людей, желающих получить инвайт на Хабр. Написал хороший топик получил инвайт.

с++, программирование

Очевидно, что сдвиг быстрее, что иногда очень нужно и важно. Ну а какой способ умножения выбрать это уже решает программист.

Синий график традиционное умножение, Зеленый график умножение сдвигом.

Проведя много тестов, составил график:

Можно заметить, что умножение методом сдвига происходит быстрее, чем традиционное умножение.

Вот парочка выданных результатов:

for(int i=0; i<2; i++) printf("%lf\n", (double)time[i]/1000);

for(int i=0; i<10000000; i++) b*=2; //многократное умножение на 2 без сдвига

for(int i=0; i<10000000; i++) a<<1; //многократное умножение на 2 с помощью сдвига

В приведенном ниже коде проверяется зависимость умножения и времени, потраченным на это умножение.

Очень часто при написании программы используется умножение, например умножение на число 2. Есть два способа умножение на 2. Первый: самый популярный, особенно среди новичков (например, a=a*2). Второй: более профессиональный (например, a<<1). Самое большое отличие между ними это скорость выполнения операции об этом и будет рассказано в этом посте.

Скорость умножения

Скорость умножения / Песочница / Хабрахабр

Комментариев нет:

Отправить комментарий