Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
em1X
post
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


czemu nie korzystasz z manuala (convert hex to dec) ? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Ten post edytował em1X 12.11.2007, 23:07:16
Go to the top of the page
+Quote Post
firex
post
Post #3





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

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


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
Go to the top of the page
+Quote Post
em1X
post
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Gdybyś ten manual czytał, to zauważyłbyś, że w komentarzach (na dole strony) większość funkcji jest zaimplementowana przez innych.
Go to the top of the page
+Quote Post
firex
post
Post #5





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

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


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?
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


pospieszyłem się, zwracam honor (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) .. ale za to nie korzystasz z googla (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
(IMG:http://forum.php.pl/style_emoticons/default/party.gif)

po co robić znowu coś co już zostało dobrze zrobione? no chyba, że dla ćwiczeń?
Go to the top of the page
+Quote Post
heaven
post
Post #7





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

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: 21.12.2025 - 14:14