|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Ivan Boldyrev 2:5080/1003 26 Jan 2003 13:12:56 To : "Andrew Ezhguroff" Subject : Re: чётное/не чётное? -------------------------------------------------------------------------------- "Andrew Ezhguroff" <eandr@com2com.ru> writes: > Привет! "Sergey Pavlov" <Sergey.Pavlov@p27.f4.n5033.z2.fidonet.org> > сообщил(а): > > AE>> Hy и зачем так сложно? :-) Это делается так: > AE>> if(Chislo%2) > SP> Или пpовеpить кpайний бит: если 0x???1 - нечетное, иначе 0x???0 - > SP> четное if(Chislo & 0x01) > > Только вот для "%2" GCC генерирует: > > testl $1, 8(%ebp) > > , а для "&0x01": > > movl 8(%ebp), %eax > andl $1, %eax > testb %al, %al > Ты во втором случае забыл передать компилятору ключ оптимизации. Если передавать идентинчные ключи, то и ассемблерный код получается одинаковым. Проверено на GCC 2.96. Hа более свежих проверять нет смысла. Я для чистоты эксперимента всегда помещаю сравниваемые реализации в один исходник. -- Ivan Boldyrev PGP fp: 3640 E637 EE3D AA51 A59F 3306 A5BD D198 5609 8673 Ваши байты биты! --- ifmail v.2.15dev5 * Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/14646287314cb.html, оценка из 5, голосов 10
|