2009-08-13 10 views
11

Ich muss einige Daten (ein wenig seltsam formatiert) drucken. Ich schrieb es in PHP mit if ($ num% 10 == 9), aber es war unmöglich für mich, eine korrekte Ausgabe zu erhalten.So drucken Sie Hexadezimalzahlen in PHP oder Java

Schauen Sie sich das zum Beispiel an. Wir haben x von Dateien im Ordner. Für dieses Beispiel ist x = 36. X ist immer bekannt.

Ausgabe sollte wie folgt aussehen:

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

Sorry für die eine so lange „Liste“, aber ich glaube, dass Sie wissen, was ich jetzt brauche. Also, nach jeder Zahl, die mit 9 endet, haben wir num (a, b, c, d, e, f) und dann Nummer, die der vorherigen Nummer mit 9 am Ende folgt. (Ex. 3a ... 3f, 40.49). Und was am wichtigsten ist, ist, dass die Anzahl der gedruckten Zeilen gleich x sein muss.

Wenn möglich, würde ich PHP oder Java Code bevorzugen, aber ich werde für jede Art von Hilfe sehr dankbar sein.

+0

Können Sie einfach hexadezimale Zahlen sagen? –

Antwort

9

Sie müssen die Zahlen 1 bis 30 in Hexadezimalschreibweise drucken. Versuchen Sie, diese Methode für jede Zeile:

dechex (int $number) 
+2

so einfach ... 'while ($ Nummer ++ <$ X) {echo dechex ($ Nummer)." \ N "; } ' –

+0

Ah, blöd mich, ich dachte überhaupt nicht an Hex ... Mein Gehirn funktioniert nicht an diesen heißen Tagen, aber es ist offensichtlich, dass ich ein echtes noob bin manchmal: D – Splendid

4

Dieses 01-24 hexadezimal gedruckt wird (mit 0 Polsterung vor Zahlen kleiner als 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

Was ist das? Java hat kein printf. – jimyi

+4

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

+0

Interessant, muss es übersehen haben über die Dokumente. – jimyi

29

Für Java:

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

oder

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

Letzteres hat mehr Optionen zum Formatieren der Hex-Zeichenfolge.

+2

Noch etwas kürzer: 'System.out.format ("% x \ n ", Nummer);' –