Come stampare numeri esadecimali in PHP o Java
-
13-09-2019 - |
Domanda
Ho bisogno di stampare alcuni dati (un po 'strano formattato). Stavo scrivendo in PHP con if ($ num% 10 == 9) ma era impossibile per me per ottenere l'uscita corretta.
Quindi, dare un'occhiata a questo per esempio. Abbiamo x di file nella cartella. Per questo esempio x = 36. X è sempre noto.
Output 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
Ci scusiamo per la quali una lunga "lista", ma credo che si sa che cosa ho bisogno ora. Così, dopo ciascun numero che termina con 9 abbiamo num (a, b, c, d, e, f), quindi il numero che segue precedenti con 9 sull'estremità. (Es. 3a ... 3f, 40..49). E ciò che è più importante è che il numero di righe stampate deve essere uguale a x.
Se possibile, preferirei PHP o Java codice, ma sarò molto grato per qualsiasi tipo di aiuto.
Soluzione
È necessario stampare i numeri da 1 a 30 in notazione esadecimale. Prova questo metodo per ogni riga:
dechex ( int $number )
Altri suggerimenti
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.
for ( int i=1 ; i <= x; i++ ) {
System.out.printf("%02x\n", i);
}
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);
}
<?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