Číselné soustavy v PHP

POZOR! Článek jsem napsal před více jak rokem, a tudíž už nemusí reflektovat můj nynější názor nebo může být zastaralý.

Od verze PHP 5.4 se už konečně může pracovat se všemi základními číselnými soustavami, přibyla totiž podpora binární soustavy. Dříve již byly podporovány: osmičková, desítková i šestnáctková soustava.

Jejich zápis v PHP je následující:

$int =   10  // Zápis v desítkové s.,    vypíše: 10
$int =  010  // Zápis v osmičkové s.,    vypíše:  8
$int = 0x10  // Zápis v šestnáctkové s., vypíše: 16
$int = 0b10  // Zápis v dvojkové s.,     vypíše:  2    - Až od PHP 5.4

Mezi soustavami můžete různě počítat, ale návratová hodnota jakéhokoli zápisu se automaticky převede do desítkové soustavy.

   // 255 + 8 => vypíše se 263
echo 0xFF + 010;

Paradoxně tak musíte při výpisu čísla soustavu funkcí převést z desítkové na tu, kterou chcete, i když jste ji použili při zápisu.

echo 0xFF;           // Vypíše: 255
echo dechex (0xFF);  // Vypíše: ff
echo decbin (0xFF);  // Vypíše: 11111111
echo decoct (0xFF);  // Vypíše: 377

Sdílením článku mi pomůžete a uděláte mi velikou radost :)

Komentáře