2009-08-13 9 views
11

J'ai besoin d'imprimer quelques données (un peu formatées bizarrement). Je l'écrivais en PHP avec if ($ num% 10 == 9) mais il était impossible pour moi d'obtenir une sortie correcte.Comment imprimer des nombres hexadécimaux en PHP ou Java

Alors, regardez par exemple. Nous avons x de fichiers dans le dossier. Pour cet exemple x = 36. X est toujours connu.

sortie devrait ressembler à ceci:

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

Désolé pour l'une telle « liste » longue, mais je crois que vous savez ce que je dois maintenant. Donc, après chaque nombre qui se termine par 9, nous avons num (a, b, c, d, e, f) et ensuite numéro qui suit le nombre précédent avec 9 à la fin. (Ex. 3a ... 3f, 40..49). Et le plus important est que le nombre de lignes imprimées soit égal à x.

Si possible, je préférerais le code PHP ou Java mais je serai très reconnaissant pour toute sorte d'aide.

+0

Pourriez-vous simplement dire des nombres hexadécimaux? –

Répondre

9

Vous devez imprimer les nombres 1 à 30 en notation hexadécimale. Essayez cette méthode pour chaque ligne:

dechex (int $number) 
+2

si simple ... 'while ($ nombre ++ <$ X) {echo dechex ($ nombre)." \ N "; } ' –

+0

Ah, stupide moi, je ne pensais pas du tout à l'hexagone ... Mon cerveau ne fonctionne pas à ces journées chaudes, mais il est évident que je suis un vrai nOOb parfois: D – Splendid

4

Cette imprimera hexadécimal 01-24 (avec 0 padding en face des moins de 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

Qu'est-ce que c'est? Java n'a pas printf. – jimyi

+4

Depuis Java 5.0, c'est le cas. http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter05/formatterPrintf.html –

+0

Intéressant, il doit avoir manqué de jeter un coup d'œil sur les docs. – jimyi

29

Pour Java:

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

ou

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

Ce dernier a plus d'options pour le formatage de la chaîne hexadécimale.

+2

Même légèrement plus court: 'System.out.format ("% x \ n ", nombre);' –