Zjištění - lichá a sudá

Asi nejzákladnějším rozdělením čísel je na lichá a sudá. Každý člověk to lehce pozná, ale co program? Většina programátorů to řeší mě donedávna jediným způsobem který znám. Je to zbytek po dělení.


  1. $a = 6;
  2. if($a %2 )
  3.   echo 'liche';
  4. else
  5.   echo 'sude';

Bohužel si nepamatuji kde to bylo, ale viděl jsem další řešení. To řešení staví na na bitových operacích.

Pokud budeme mluvit jen o celých číslech tak poslední bit toho čísla je vlastně 2^0, což je jedna. Právě existence téhle jednicku určuje tu lichost nebo sudost čísla. Po téhle teorii už není problém sestavit kód. Použijeme bitový operator AND (&).

  1. $a = 6;
  2. if($a & 1)
  3.   echo 'liche';
  4. else
  5.   echo 'sude';

Pokud to není pochopitelné prostuduj te si uplné základy.