2009-08-13 17 views
11

Potrzebuję wydrukować niektóre dane (trochę dziwnie sformatowane). Pisałem to w PHP z if ($ num% 10 == 9), ale nie mogłem uzyskać poprawnego wyniku.Jak drukować liczby szesnastkowe w PHP lub Java

Spójrz na to na przykład. Mamy x plików w folderze. Dla tego przykładu x = 36. X jest zawsze znany.

Wyjście powinno wyglądać tak:

01 
02 
03 
04 
05 
06 
07 
08 
09 
0a 
0b 
0c 
0d 
0e 
0f 
10 
11 
... 
19 
1a 
... 
1f 
20 
... 
24 

Przepraszamy za tak długi „list”, ale wierzę, że wiesz, co muszę teraz. Po każdej liczbie kończącej się na 9 mamy liczbę (a, b, c, d, e, f), a następnie liczbę podążającą za poprzednim numerem z 9 na końcu. (Przykład 3a ... 3f, 40..49). I najważniejsze jest to, że liczba wydrukowanych linii musi być równa x.

Jeśli to możliwe, wolałbym kod PHP lub Java, ale będę wdzięczny za wszelką pomoc.

+0

Czy możesz podać liczby szesnastkowe? –

Odpowiedz

9

Należy wydrukować liczby od 1 do 30 w zapisie heksadecymalnym. Spróbować tej metody dla każdej linii:

dechex (int $number) 
+2

takie proste ... 'while ($ number ++ <$ X) {echo dechex ($ number)." \ N "; } ' –

+0

Ah, głupi, ja w ogóle nie myślałem o hex ... Mój mózg nie pracuje w te gorące dni, ale jest oczywiste, że czasami jestem prawdziwym nOOb: D – Splendid

4

To będzie drukować szesnastkowy 01-24 (z 0 dopełnienie przed numerem mniej niż 10)

for ($i = 1; $i <= 36; $i++) { 
    printf("%02x\n", $i); 
} 
1
<?php 
function blah($n) { 
    for($i=1;$i<=$n;$i++) { 
    printf("%02x\n", $i); 
    } 
} 

blah(36); 
?> 

01 
02 
03 
04 
05 
06 
07 
08 
09 
0a 
0b 
0c 
0d 
0e 
0f 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
1a 
1b 
1c 
1d 
1e 
1f 
20 
21 
22 
23 
24 
7
for (int i=1 ; i <= x; i++) { 
     System.out.printf("%02x\n", i); 
    } 
+0

Co to jest? Java nie ma printf. – jimyi

+4

Od wersji 5.0 Java. http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter05/formatterPrintf.html –

+0

Interesujące, musiało minąć to spojrzenie na dokumenty. – jimyi

29

Dla Java:

System.out.println(Integer.toHexString(number)); 

lub

System.out.println(String.format("%x", number)); 

Ten drugi ma więcej opcji formatowania ciągu szesnastkowego.

+2

Nawet nieco krócej: 'System.out.format ("% x \ n ", liczba);' –

Powiązane problemy