Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Heksadecymalne na dziesiętne
rudald
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.12.2008

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


Dla "potrenowania" myślenia stwierdziłem, że napiszę program przeliczający systemy liczbowe. System binarny już opracowałem w dwie strony i teraz myślę nad heksadecymalnym

  1. <?php
  2. $b="19a";
  3. $c=str_split($b,1);
  4. $ilosc=strlen($b);
  5. $liczba2=0;
  6. print_r($d);
  7. $n=0;
  8. if(in_array("A",$d) or (in_array("a",$d)))
  9. {
  10.  
  11. $d[0]=10;
  12. for ($i=1; $i<=$ilosc; $i++)
  13. {
  14. echo $liczba=pow(16,$n)*$d[$n];
  15. echo '<br>';
  16. $liczba2=$liczba+$liczba2;
  17. $n++;
  18. }
  19. echo 'jest a';
  20. }
  21. echo $liczba2;
  22.  
  23. ?>


Więc generalnie mam problem taki: Chciałbym, żeby program wyszukiwał na którym miejscu znajduje się element alfabetu. Jest może taka funkcja? Szukałem, w funkcjach 'array' ale nie zdołałem znaleźć lub pominąłem ją przypadkiem.
By później móc podnieść ją odpowiednio do potęgi : ).

Wiem, że będę musiał zmienić konstrukcję warunku, bo musiałbym się nieco namęczyć, a przecież program ma być efektowny i efektywny. Litera A dla przykładu

Ten post edytował rudald 2.01.2011, 23:44:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rudald
post
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.12.2008

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


Przepraszam, za to że naskoczyłem - źle zrozumiałem treść Twojej wypowiedzi.
Wygląda na to, że w jakiś sposób skorzystałem z Twej rady - porównałem tablice i podstawiłem używając str_replace.
Pisałem znów program odwrotny i mam błąd - mianowicie:
Z liczby 39435 w systemie Hex wychodzi 9AB a ma wyjść 9A0B pomija mi 0.

  1. <?php
  2. echo $b=39435;
  3. echo '<br>';
  4. $c=$b;
  5.  
  6. do
  7. {
  8. for($i=0; $b>=16; $i++)
  9. {
  10. echo $b=floor($b/16);
  11. echo '<br>';
  12. }
  13. $n++;
  14. $d[$n]=$b;
  15. $liczba=pow(16,$i);
  16. echo $c=$c-$liczba*$b;
  17. $b=$c;
  18. echo '<br>';
  19. }
  20. while($b>=1);
  21.  
  22. print_r($d);
  23. ?>

po wyświetleniu zwraca:
39435
2464
154
9
2571
160
10
11
0
Array ( [1] => 9 [2] => 10 [3] => 11 )

Orientujesz się może gdzie jest błąd ?


Ten post edytował rudald 13.01.2011, 00:26:06
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: 26.12.2025 - 23:30