LINUX.ORG.RU

Деление целых на 2 через битовый сдвиг - архаизм?

 


1

3
#include <iostream>
using namespace std;

int main()
{
	int v = 0;
	for(int i = 0; i < 2000 * 1000 * 1000; ++i) {
		v ^= i >> 1; /* i / 2 */
	}
	cout << v << endl;
	return 0;
}

Если битовый сдвиг заменить обычным делением, то время выполнения не изменится. Обе операции насколько мне известно занимают 1 такт. Запускал на x64.
Существуют ли архитектуры (arm, mips, ...), для которых эти и другие известные трюки - полноправная оптимизация?

UPD: при делении на 3, разница между сдвигом и делением ощутимая. Вопрос: как так, ведь обе инструкции за 1 такт выполняются?



Последнее исправление: nerdogeek (всего исправлений: 2)
Ответ на: комментарий от anonymous

ибо выгоден товар с малым циклом жизни.

«Ой-ей-ей?! Всё пропало! Тушёночная невеста нас тут всех разоблачила.»

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)

Почитал его перлы в других темах — в дурку инет провели походу.

anonymous
()
Ответ на: комментарий от anonymous

Чувак, я тоже скучаю по СССР.

anonymous
()
Ответ на: комментарий от anonymous

О5 ты, питушок, слился как детё.

Скоро начнешь отвечать за питушка ;)

С какого хрена у тебя там пропали левы/правые биты из твоего указателя - меня не интересует. Это твоя проблема.

У меня нет проблем, это вроде ты тут царске потрох, чей никому ненужный выхлоп даже не собирается без изменений.

Выкладывай свои uname -a, lscpu, gcc -v, emerge --info | grep libc или как там в твоём говне это добывать.

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

И ещё раз, питушок, повторю тебе - мой код не валится - валится твоё говно. Запомни это, и повтори это раз 500

Мой код не валится - валится твое говно. х500. Запомнил. Да вроде все так и есть ITT.

arturpub ★★
()
Ответ на: комментарий от anonymous

Какая жесть, это явно кто-то развлекается. Не бывает настолько ущербных людей.

бывают

вот только идут они не в программисты (т.к. программистам реально приходится сталкиваться с действительностью, и необоснованное чсв обламывается там довольно быстро), а во что-то гуманитарно-направленное, скажем, в диджеи/композиторы (бугага)

я в real life знаю одного такого диджея/композитора

прибавь к этому ~16 лет пациента супербыдлокодер1997 — и все станет на свои места

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.