- Код: Выделить всё
SetLength(g, 2000);
for i:=0 to High(g) do g[i] := Random(1000) * 10;
j := 0;
t1 := tsc;
for i:=0 to High(g) do j := j + g[i] * 10;
t2 := tsc;
// разница т2 и т1 около 6 мкс
j := 0;
t1 := tsc;
for i:=0 to High(g) do j := j + g[i] div 10;
t2 := tsc;
// разница т2 и т1 около 34 мкс
Есть ли способ избежать избыточной операции отсечения/округления, если заранее известно что результат деления может быть только целочисленным?
Добавлено спустя 7 минут 15 секунд:
К слову, на С# оба цикла выполняются за примерно 12мкс. Стало быть технологических ограничений у компьютера нет.