Там же есть код, подтверждающий, что четных и нечетных 50-50.
GanDJuStas Вот код, как я тестил int main() { size_t proc = 0; size_t proc2 = 0; size_t all = 0; for(size_t i = 0; i < 10000; i++) { int a...
Работает :)
Наверное так имел ввиду and eax,1 neg eax sbb eax,eax and al,0FEh add eax,1
И? Надо без cmp. Была идея с shl eax,31, но не смог додумать.
У меня уже есть случайное число в EAX. Надо из него получит 1 или -1 с 50% вероятностью.
В EAX случайное число. Надо чтобы в 50% слачаев мы получали 1(00000001), а в других 50% -1(FFFFFFFF).
Тогда все верно :) Только этот код медленее твоего же с dec. Но быстрее моего оригинального.
Да в результате. Возьми мой оригинальный код и свой. Сделай NUM = 10, 100, 1000 и посмотри на результат. Твой код аналогичен NUM/2.
Код не правильно работает. Точнее не идентичен исходному. :(
Читер! :) А последний код сильно быстрее(сейчас не могу потестить)?
Ага можно вообще без ветвления. код, inc(ecx), код, inc(ecx), jl Только это скорости не прибавляет. Пробовал. Тогда ответ не верный получается....
Хм... я так понял реальное ускорение может дать только использование SSE?
#define NUM 256*1024*1024 double calc5() { double pi = 0.0; double two = 2.0; int i = 0; double four = 4.0; _asm { mov ecx, 0; fld...
Имена участников (разделяйте запятой).