IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

23. diel - Prevody medzi číselnými sústavami v PHP

V minulej lekcii, Logaritmus a Eulerovo Číslo v PHP , sme si ukázali funkcie pre logaritmus a Eulerovo Číslo v PHP.

Prevody medzi číselnými sústavami sú neoddeliteľnou súčasťou nielen oblasti IT, ale aj bežného života, kde sa stretávame predovšetkým s desiatkovú sústavou čísel. Iste však poznáme aj ďalšie číselnej sústavy, pre ktoré si ukážeme a vysvetlíme funkcie, ktoré nám prevody medzi nimi uľahčí.

decbin()

Funkcia decbin() prevedie číslo v desiatkovej (decimal) sústave na číslo dvojkovej (binary) sústavy. Funkcia prijíma iba jeden parameter, ktorým je naša číslo v desiatkovej sústave. Návratová hodnota je textový reťazec (string). Rozsah vstupu závisí od bitovej verzii operačného systému. Ukážme si príklady:

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

Prvá hodnota 32 je vyjadrená v binárnej sústave ako 100000. Každé jednotlivé číslo v binárnej sústave, teda jednička alebo nula, predstavuje akýsi stav (napr .: 0 -> vypnuté, 1 -> zapnuté) alebo tiež pravdivosť či nepravdivosť výroku. Tieto binárne hodnoty sa používajú prevažne v digitálnej technike založenej na logických hradlo. Ak chceme skontrolovať správnosť prevodu, možno si vyjadriť každú binárnu hodnotu ako mocninu dvojky, teda budeme postupovať sprava doľava a prvú hodnotu binárneho čísla vyjadríme ako 2 0. Pokiaľ všetky výsledky mocnín sčítame, dostaneme vstupnú hodnotu 32 a binárne číslo sme úspešne previedli späť do desiatkovej sústavy. Druhá hodnota 64 sa po prevode líšia iba o nulu navyše sprava 1000000, avšak táto nula nesmie byť zanedbaná, jedná sa o celú mocninu dvojky.

bindec()

Funkcia bindec() prevedie číslo v dvojkovej sústave na číslo v desiatkovej sústave. Funkcia prijíma iba jeden parameter, ktorým je naša číslo v binárnej sústave. Toto binárne číslo však musíme odovzdať ako textový reťazec, ostatné dátové typy môžu spôsobiť nečakané výsledky. Návratová hodnota je celé číslo alebo číslo s plávajúcou desatinnou čiarkou (integer / float). Vstupné hodnotou tejto funkcie musí byť binárne číslo zapísané ako textový reťazec (string). Ukážme si príklady:

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

Binárne číslo 00100000 vyjadrené v desiatkovej sústave je 32. Oproti predchádzajúceho príkladu funkcie decbin() sme do binárneho čísla zľava pridali nuly, čo prevod medzi binárne a desiatkovú sústavou vôbec nemenia. Druhé binárne číslo 01000000 je vyjadrené v desiatkovej sústave ako 64, opäť nula navyše zľava nič nemení.

dechex()

Funkcia dechex() prevedie číslo v desiatkovej (decimal) sústave na číslo hexadecimálne (hexadecimal) sústavy. Funkcia prijíma iba jeden parameter, ktorým je naša číslo v desiatkovej sústave. Návratová hodnota je textový reťazec (string). Vstupné hodnotou tejto funkcie je celé číslo (integer). Najväčšie číslo, ktoré môže byť prevedené na 32-bit systému je PHP_INT_MAX * 2 + 1 (alebo -1). Ukážme si príklady:

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

Prvé zadané číslo 11 je prevedené do šestnástkovej sústavy ako b. Počet čísel v šestnástkovej sústave, ako už nám názov sústavy napovedá, je šestnásť. Sú to čísla od 0 až 9 a následne od a do f. Druhé zadané číslo 26 je prevedené do šestnástkovej sústavy ako 1a.

hexdec()

Funkcia hexdec() prevedie číslo v šestnástkovej sústave na číslo desiatkovej sústavy. Funkcia prijíma iba jeden parameter, ktorým je naša číslo v šestnástkovej sústave. Návratová hodnota je celé číslo (Integer). Vstupné hodnotou tejto funkcie musí byť hexadecimálne číslo zapísané ako textový reťazec (String). Ukážme si príklady:

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

Hexadecimálne číslo f je vyjadrené v desiatkovej sústave ako 15. Druhé zadané číslo ffffffff je maximálna hodnota, ak ho prevedieme do desiatkovej sústavy, dostaneme maximálnu celé číslo v závislosti na bitovej verzii systému. Pre 32-bit systém dostaneme na výstup 4294967295.

decoct()

Funkcia decoct() prevedie číslo v desiatkovej sústave na číslo v osmičkovej (Octal) sústave. Desiatková sústava má hodnoty od 0 do 9, čiže osmičková iba od 0 do 7. Funkcia akceptuje iba jeden parameter, ktorým je naša číslo v desiatkovej sústave. Návratová hodnota je textový reťazec (string). Vstupné hodnotou tejto funkcie je celé číslo (integer). Ukážme si príklady:

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

Hodnota 64 v desiatkovej sústave je po presune do osmičkovej sústavy vyjadrená ako číslo 100. V osmičkovej, čiže oktálne sústave, o základe 8 sa vyskytujú cifry 0 až 7, presnejšie teda 8 cifier. Ak zadáme do funkcie číslo 128, sa presunie do oktálne sústavy a na výstup dostaneme číslo 200.

octdec()

Funkcia octdec() prevedie číslo v oktálne sústave na číslo v desiatkovej sústavy. Funkcia prijíma iba jeden parameter, ktorým je naša číslo v osmičkovej sústave. Návratová hodnota je celé číslo alebo číslo s plávajúcou desatinnou čiarkou (float / integer). Vstupné hodnotou tejto funkcie je textový reťazec. Ukážme si príklady:

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

Ako už je nám známe, funkcia octdec() prevádza čísla z osmičkovej sústavy na čísla v desiatkovej sústave. Prevedieme chcete číslo 100 v osmičkovej na desiatkovú, dostaneme na výstup číslo 64. V druhom príklade je vykonaná totožná operácie a na výstup dostaneme číslo 87 v desiatkovej sústave.

deg2rad()

Funkcia deg2rad() prevedie hodnotu v stupňoch na hodnotu v radiánoch. Funkcia prijíma iba jeden parameter, ktorým je naša hodnota v stupňoch. Návratová hodnota je číslo s plávajúcou desatinnou čiarkou (float). Vstupné hodnotou tejto funkcie je celé číslo alebo číslo s desatinnou plávajúcou čiarkou. Ukážme si príklady:

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

Funkcia prevedie hodnotu v stupňoch na hodnotu radiánov tak, ako poznáme z matematiky. Teda ak zadáme do funkcie hodnotu 90, na výstup dostaneme približne 1.5708 radiánů. To isté ak zadáme napríklad 180°, na výstup dostaneme približne 3.1416 radiánů.

rad2deg()

Funkcia rad2deg() prevedie hodnotu v radiánoch na hodnotu v stupňoch. Funkcia prijíma iba jeden parameter, ktorým je naša hodnota v stupňoch. Návratová hodnota je číslo s plávajúcou desatinnou čiarkou (float). Vstupné hodnotou tejto funkcie je celé číslo alebo číslo s desatinnou plávajúcou čiarkou. Ukážme si príklady:

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

Funkcia rad2deg() nám prevedie zadanú hodnotu v radiánoch na stupne. V prvom príklade prevádzame hodnotu 1.5707963267949 radiánů na stupne. Výstupom funkcie bude presne 90°. Rovnako tak v druhom príklade, kde prevádzame hodnotu 3.1415926535898 radiánů na stupne. Na výstup dostaneme presne 180°.

V ďalšej lekcii, Zaokrúhľovania čísel v PHP , si ukážeme funkcie pre zaokrúhľovanie čísel v PHP. Ukážeme si funkcie ako floor (), ceil () či round ().


 

Predchádzajúci článok
Logaritmus a Eulerovo Číslo v PHP
Všetky články v sekcii
PHP funkcie
Preskočiť článok
(neodporúčame)
Zaokrúhľovania čísel v PHP
Článok pre vás napísal Pavel Vaněček
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje psaní článků na Itnetwork.cz
Aktivity