dodání ihned! nové
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF

Lekce 24 - Převody mezi číselnými soustavami v PHP

V minulé lekci, Další matematické funkce v PHP, jsme si ukázali další matematické funkce v PHP.

Převody mezi číselnými soustavami jsou nedílnou součástí nejen oboru IT, ale také běžného života, kde se setkáváme především s desítkovou soustavou čísel. Jistě však známe i další číselné soustavy, pro které si ukážeme a vysvětlíme funkce, které nám převody mezi nimi usnadní.

decbin()

Funkce decbin() převede číslo v desítkové (decimal) soustavě na číslo dvojkové (binary) soustavy. Funkce přijímá pouze jeden parametr, kterým je naše číslo v desítkové soustavě. Návratová hodnota je textový řetězec (string). Rozsah vstupu závisí na bitové verzi operačního systému. Ukažme si příklady:

echo( decbin(32) );
echo "<br>";
echo( decbin(64) );

První hodnota 32 je vyjádřena v binární soustavě jako 100000. Každé jednotlivé číslo v binární soustavě, tedy jednička nebo nula, představuje jakýsi stav (např.: 0 -> vypnuto, 1 -> zapnuto) nebo také pravdivost či nepravdivost výroku. Tyto binární hodnoty se používají převážně v digitální technice založené na logických hradlech. Pokud chceme zkontrolovat správnost převodu, lze si vyjádřit každou binární hodnotu jako mocninu dvojky, tedy budeme postupovat zprava doleva a první hodnotu binárního čísla vyjádříme jako 20. Pokud všechny výsledky mocnin sečteme, dostaneme vstupní hodnotu 32 a binární číslo jsme úspěšně převedli zpět do desítkové soustavy. Druhá hodnota 64 se po převodu liší pouze o nulu navíc zprava 1000000, avšak tato nula nesmí být zanedbána, jedná se o celou mocninu dvojky.

bindec()

Funkce bindec() převede číslo ve dvojkové soustavě na číslo v desítkové soustavě. Funkce přijímá pouze jeden parametr, kterým je naše číslo v binární soustavě. Toto binární číslo však musíme předat jako textový řetězec, ostatní datové typy mohou způsobit nečekané výsledky. Návratová hodnota je celé číslo nebo číslo s plovoucí desetinnou čárkou (integer/float). Vstupní hodnotou této funkce musí být binární číslo zapsané jako textový řetězec (string). Ukažme si příklady:

echo( bindec("00100000") );
echo "<br>";
echo( bindec("01000000") );

Binární číslo 00100000 vyjádřené v desítkové soustavě je 32. Oproti předchozího příkladu funkce decbin() jsme do binárního čísla zleva přidali nuly, což převod mezi binární a desítkovou soustavou vůbec nemění. Druhé binární číslo 01000000 je vyjádřené v desítkové soustavě jako 64, opět nula navíc zleva nic nemění.

dechex()

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Funkce dechex() převede číslo v desítkové (decimal) soustavě na číslo šestnáctkové (hexadecimal) soustavy. Funkce přijímá pouze jeden parametr, kterým je naše číslo v desítkové soustavě. Návratová hodnota je textový řetězec (string). Vstupní hodnotou této funkce je celé číslo (integer). Největší číslo, které může být převedeno na 32-bit systému je PHP_INT_MAX * 2 + 1 (nebo -1). Ukažme si příklady:

echo( dechex(11) );
echo "<br>";
echo( dechex(26) );

První zadané číslo 11 je převedeno do šestnáctkové soustavy jako b. Počet čísel v šestnáctkové soustavě, jak už nám název soustavy napovídá, je šestnáct. Jsou to čísla od 0 až 9 a následně od a do f. Druhé zadané číslo 26 je převedeno do šestnáctkové soustavy jako 1a.

hexdec()

Funkce hexdec() převede číslo v šestnáctkové soustavě na číslo desítkové soustavy. Funkce přijímá pouze jeden parametr, kterým je naše číslo v šestnáctkové soustavě. Návratová hodnota je celé číslo (Integer). Vstupní hodnotou této funkce musí být hexadecimální číslo zapsané jako textový řetězec (String). Ukažme si příklady:

echo( hexdec("f") );
echo "<br>";
echo( hexdec("ffffffff") );

Hexadecimální číslo f je vyjádřeno v desítkové soustavě jako 15. Druhé zadané číslo ffffffff je maximální hodnota, pokud jej převedeme do desítkové soustavy, dostaneme maximální celé číslo v závislosti na bitové verzi systému. Pro 32-bit systém dostaneme na výstup 4294967295.

decoct()

Funkce decoct() převede číslo v desítkové soustavě na číslo v osmičkové (octal) soustavě. Desítková soustava má hodnoty od 0 do 9, čili osmičková pouze od 0 do 7. Funkce přijímá pouze jeden parametr, kterým je naše číslo v desítkové soustavě. Návratová hodnota je textový řetězec (string). Vstupní hodnotou této funkce je celé číslo (integer). Ukažme si příklady:

echo( decoct("64") );
echo "<br>";
echo( decoct("128") );

Hodnota 64 v desítkové soustavě je po převodu do osmičkové soustavy vyjádřena jako číslo 100. V osmičkové, neboli oktální soustavě, o základu 8 se vyskytují cifry 0 až 7, přesněji tedy 8 cifer. Zadáme-li do funkce číslo 128, bude převedeno do oktální soustavy a na výstup dostaneme číslo 200.

octdec()

Funkce octdec() převede číslo v oktální soustavě na číslo v desítkové soustavy. Funkce přijímá pouze jeden parametr, kterým je naše číslo v osmičkové soustavě. Návratová hodnota je celé číslo nebo číslo s plovoucí desetinnou čárkou (float/integer). Vstupní hodnotou této funkce je textový řetězec. Ukažme si příklady:

echo( octdec("100") );
echo "<br>";
echo( octdec("127") );

Jak již je nám známo, funkce octdec() převádí čísla z osmičkové soustavy na čísla v desítkové soustavě. Převedeme-li číslo 100 v osmičkové na desítkovou, dostaneme na výstup číslo 64. V druhém příkladu je provedena totožná operace a na výstup dostaneme číslo 87 v desítkové soustavě.

deg2rad()

Funkce deg2rad() převede hodnotu ve stupních na hodnotu v radiánech. Funkce přijímá pouze jeden parametr, kterým je naše hodnota ve stupních. Návratová hodnota je číslo s plovoucí desetinnou čárkou (float). Vstupní hodnotou této funkce je celé číslo nebo číslo s desetinnou plovoucí čárkou. Ukažme si příklady:

echo( deg2rad("90") );
echo "<br>";
echo( deg2rad("180") );

Funkce převede hodnotu ve stupních na hodnotu radiánů tak, jak známe z matematiky. Tedy pokud zadáme do funkce hodnotu 90, na výstup dostaneme přibližně 1.5708 radiánů. To samé pokud zadáme například 180°, na výstup dostaneme přibližně 3.1416 radiánů.

rad2deg()

Funkce rad2deg() převede hodnotu v radiánech na hodnotu ve stupních. Funkce přijímá pouze jeden parametr, kterým je naše hodnota ve stupních. Návratová hodnota je číslo s plovoucí desetinnou čárkou (float). Vstupní hodnotou této funkce je celé číslo nebo číslo s desetinnou plovoucí čárkou. Ukažme si příklady:

echo( rad2deg("1.5707963267949") );
echo "<br>";
echo( rad2deg("3.1415926535898") );

Funkce rad2deg() nám převede zadanou hodnotu v radiánech na stupně. V prvním příkladu převádíme hodnotu 1.5707963267949 radiánů na stupně. Výstupem funkce bude přesně 90°. Stejně tak v druhém příkladu, kde převádíme hodnotu 3.1415926535898 radiánů na stupně. Na výstup dostaneme přesně 180°.

V další lekci, Zaokrouhlování čísel v PHP, si ukážeme funkce pro zaokrouhlování čísel v PHP. Ukážeme si funkce jako floor(), ceil() či round().


 

Předchozí článek
Další matematické funkce v PHP
Všechny články v sekci
PHP funkce
Přeskočit článek
(nedoporučujeme)
Zaokrouhlování čísel v PHP
Článek pro vás napsal Pavel Vaněček
Avatar
Uživatelské hodnocení:
1 hlasů
Autor se věnuje psaní článků na Itnetwork.cz
Aktivity

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!