На форуме говорилось, что умножение на .5 работает быстрее деления на 2, а логический сдвиг еще быстрее умножения.
Собрал тест:
Local a%=100
Local b%=0
Local time,t1,t2,t3
time=MilliSecs()
For i=1 To 100000
b=a Shr 1
Next
t1=MilliSecs()-time
time=MilliSecs()
For i=1 To 100000
b=a *.5
Next
t2=MilliSecs()-time
time=MilliSecs()
For i=1 To 100000
b=a /2
Next
t3=MilliSecs()-time
Print "SHR : "+t1
Print "* : "+t2
Print "/ : "+t3
WaitKey()
End
В итоге
Сдвиг - 53
Умножение - 30
Деление - 27
Почему же тогда деление самое быстрое, а логич. сдвиг-самый медленный?