2015-02-16 3 views
0

Я помню, что я сделал это на языке C, но я не мог заставить его работать в JAVA Как печатать длинные значения в методе printf() в java ??Как представить длинные значения в методе printf() в java?

Я попытался с ниже код, что я на самом деле нужно, чтобы напечатать длинное значение в шестнадцатеричном способом, как показано ниже

длинной L = 32L -----> 0000000000000022

, если я использую% D, то его печатает целое значение, которое я не хочу ...

class TestPrintf(){ 
public static void main(String[] args){ 

long l =100L; 

System.out.printf(“%l”+l); // Error unknown format exception 
System.out.printf(“%d”+l); // Prints 100 I understood why it prints 
System.out.printf(“%f”+l); // unknown illegal format conversion float != java.lang.long 

} 

} 
+0

И как Безразлично» t% d подходит вам точно? Вы ожидаете финального 'L' или что-то еще? – fge

+2

Вызов должен быть 'System.out.printf ("% d ", l);'. См. [Документация] (http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#printf (java.lang.String,% 20java.lang.Object ...)) – Phylogenesis

+0

если помните, что долгое значение на языке C печатает что-то вроде 0x00000000DEADBEEF (не совсем похоже) .... Я ожидаю ответа –

ответ

1

Если вы хотите 16-символьные нулей строки, с A-F в верхнем регистре, с префиксом 0x, вы должны использовать:

System.out.printf("0x%016X", l); 
+0

работает с% 016X ..... Спасибо –

+2

Кстати, это действительно помогает людям, пытающимся помочь вам, если вы заявите именно то, что вы ищете * в своем вопросе *. Другие ответы здесь полностью действительны для того, что вы просили вначале, и этот ответ основан на информации, представленной в более позднем комментарии. –

1

Вы должны поместить фактический аргумент для печати в качестве следующего аргумента printf() методов. Конкатенация не будет работать.

System.out.printf("%d%n", 123);    // for ints and longs 
System.out.printf("%d%n", 12345L);   // for ints and longs 
System.out.printf("%f%n", (double) 12345L); // for floating point numbers 

Полная документация в java.util.Formatter

+0

Это не работает с java. Я хочу шестнадцатеричное значение для long :( –