Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> HEX to DEC, jak?
firex
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.09.2007
Skąd: Bydgoszcz

Ostrzeżenie: (20%)
X----


Zrobiłem funkcję konwertującą z systemu 16 na system 10. Ale nie mam pojęcia jak zrobić z 10 na 16.
16 na 10:
Kod
function hextoten($int)
{
    $tabelka=array(
                   '0'=>0,
                   '1'=>1,
                   '2'=>2,
                   '3'=>3,
                   '4'=>4,
                   '5'=>5,
                   '6'=>6,
                   '7'=>7,
                   '8'=>8,
                   '9'=>9,
                   'A'=>10,
                   'B'=>11,
                   'C'=>12,
                   'D'=>13,
                   'E'=>14,
                   'F'=>15
                   );
    for($i=strlen($int)-1;$i>-1;--$i)
    {
        $wyn=$wyn+str_replace($int[strlen($int)-$i-1], $tabelka[$int[strlen($int)-$i-1]]*pow(16, $i), $int[strlen($int)-$i-1]);
    }
return (trim($wyn))?$wyn:0;
}

Wiem, że istnieje funkcja w PHP, która to liczy, ale chcę w ten sposób (tworząc własną funkcję) poznać nowe systemy liczbowe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Proszę prz yokazji o ocenę kodu (tzn. czy nie jest zbyt zagmatfany, itp)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
heaven
post
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $liczba = 255;
  3. $hex = '';
  4. do $hex = (($liczba%16 < 10)?(chr($liczba%16+48)):(chr($liczba%16+55))).$hex;
  5. while ($liczba >>= 4);
  6. echo $hex;
  7. ?>

ale jako ze liczby szesnastkowe lepiej wygladaja jako ciag o parzystej liczbie znakow to zamiast echo $hex; mozna napisać
  1. <?php
  2. echo (strlen($hex)%2)?('0'.$hex):($hex);
  3. ?>

11 => 0B
255 => FF

Ten post edytował heaven 13.11.2007, 11:23:28
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 05:24