Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: HEX to DEC
Forum PHP.pl > Forum > PHP
firex
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 winksmiley.jpg Proszę prz yokazji o ocenę kodu (tzn. czy nie jest zbyt zagmatfany, itp)
em1X
czemu nie korzystasz z manuala (convert hex to dec) ? sciana.gif sciana.gif sciana.gif
firex
przecież mówiłem, że wiem, że istnieją gotowe funkcje. Ale pisząc sam funkcje mogę poznać ich budowe i jak działają poszczególne systemy liczbowe
em1X
Gdybyś ten manual czytał, to zauważyłbyś, że w komentarzach (na dole strony) większość funkcji jest zaimplementowana przez innych.
firex
przeczytałem wszystkie komentarze - każdy kod przez nich przedstawiony korzysta z funkcji hexdec (są wyjątki gdzie korzysta z binhex)

Cytat
większość funkcji jest zaimplementowana przez innych.
co masz na myśli?
em1X
pospieszyłem się, zwracam honor wstydnis.gif .. ale za to nie korzystasz z googla aaevil.gif

w JS
http://www.easycalculation.com/hexConv.js

teoria
http://www.trap17.com/index.php/how-conver...mal_t43405.html

zawsze możesz to olać i zrobić po prostu:
  1. <?php
  2. $dec = 2010;
  3. print sprintf("%x", $dec);
  4. ?>
party.gif

po co robić znowu coś co już zostało dobrze zrobione? no chyba, że dla ćwiczeń?
heaven
  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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.