2009-08-13 20 views
11

Necesito imprimir algunos datos (un poco extraño formateado). Estaba escribiendo en PHP con if ($ num% 10 == 9) pero me fue imposible obtener la salida correcta.Cómo imprimir números hexadecimales en PHP o Java

Así que eche un vistazo a esto, por ejemplo. Tenemos x de archivos en la carpeta. Para este ejemplo x = 36. X es siempre conocido.

de salida debe tener este aspecto:

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

Lo siento por la "lista" tan largo, pero creo que ya sabe lo que necesito ahora. Entonces, después de cada número que termina con 9 tenemos num (a, b, c, d, e, f) y luego el número que sigue al número anterior con 9 al final. (Ej. 3a ... 3f, 40..49). Y lo más importante es que el número de líneas impresas debe ser igual a x.

Si es posible, preferiría el código PHP o Java pero estaré muy agradecido por cualquier tipo de ayuda.

+0

¿Podría decir números hexadecimales? –

Respuesta

9

Debe imprimir los números del 1 al 30 en notación hexadecimal. Pruebe este método para cada línea:

dechex (int $number) 
+2

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

+0

Ah, estúpido de mí, no estaba pensando en ningún tipo de maleficio ... Mi cerebro no está funcionando en estos días calurosos, pero es obvio que a veces soy un verdadero nOb: D – Splendid

4

Esto imprimirá hexadecimal 01-24 (con 0 acolchado delante de los números de menos 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é es esto? Java no tiene printf. – jimyi

+4

A partir de Java 5.0, lo hace. http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter05/formatterPrintf.html –

+0

Interesante, debe haberlo echado de menos echar un vistazo a los documentos. – jimyi

29

Para Java:

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

o

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

Este último tiene más opciones para formatear la secuencia hexadecimal.

+2

Incluso un poco más corto: 'System.out.format ("% x \ n ", number);' –

Cuestiones relacionadas