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.

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top