2009-08-13 25 views
11

Ho bisogno di stampare alcuni dati (un po 'strano formattato). Lo stavo scrivendo in PHP con if ($ num% 10 == 9) ma per me era impossibile ottenere l'output corretto.Come stampare numeri esadecimali in PHP o Java

Quindi dare un'occhiata a questo ad esempio. Abbiamo x di file nella cartella. Per questo esempio x = 36. X è sempre conosciuto.

uscita dovrebbe essere simile a questo:

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

Scusate per la quali una lunga "lista", ma credo che si sa che cosa ho bisogno ora. Quindi, dopo ogni numero che termina con 9 abbiamo num (a, b, c, d, e, f) e quindi il numero che segue il numero precedente con 9 alla fine. (Es. 3a ... 3f, 40..49). E la cosa più importante è che il numero di linee stampate deve essere uguale a x.

Se possibile, preferirei codice PHP o Java, ma sarò molto grato per qualsiasi tipo di aiuto.

+0

Puoi solo dire numeri esadecimali? –

risposta

9

È necessario stampare i numeri da 1 a 30 in notazione esadecimale. Prova questo metodo per ogni riga:

dechex (int $number) 
+2

così semplice ... 'while ($ number ++ <$ X) {echo dechex ($ number). \ N"; } –

+0

Ah, stupido, non pensavo affatto a hex ... Il mio cervello non sta funzionando in questi giorni caldi, ma è ovvio che a volte sono un vero nOOb: D – Splendid

4

Questo stamperà esadecimale 01-24 (con 0 imbottitura in davanti ai numeri inferiore a 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

Che cos'è questo? Java non ha printf. – jimyi

+4

A partire da Java 5.0, lo fa. http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter05/formatterPrintf.html –

+0

Interessante, deve averlo perso guardando i documenti. – jimyi

29

Per Java:

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

o

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

Quest'ultimo ha più opzioni per la formattazione della stringa esadecimale.

+2

Anche leggermente più corto: 'System.out.format ("% x \ n ", numero);' –