Umwandlung einer Dezimalzahl in Java in einen Hexwert mit der Anzeige führender Nullen?

...komplette Frage anzeigen

3 Antworten

Mit Integer.toString(int i, int radix) kannst du eine beliebige Ganzzahl i in eine Basis radix umrechnen.

Mit Integer.parseInt(String s, int radix) kannst du eine beliebige Ganzzahl s (in Textform) der Basis radix in das Dezimalsystem umrechnen.

Damit hast du im Prinzip schon alles, was du willst.

Wenn du 2000₁₀ in hexadezimal umrechnen, möchtest, machst du das folgendermaßen:

String hex = Integer.toString(2000, 16);

Der String hex ist dann "7d0".

Um die Zahl immer vierstellig zu halten, also ggf. führende Nullen hinzuzufügen, musst du dich der Klasse String.format(String format, Object... args) bemühen.

String hex2 = String.format("%04d", hex);

Das Argument format ist hier ein Format String und legt fest, wie die Zahl im Endeffekt aussieht.

Mehr zu Format Strings findest du hier:
http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

LG Willibergi

wenn ich das Format so wie du schreibe, dann bekomme ich eine Exception. Was bedeutet der String "%04d".

0

Gibt es eine Möglichkeit, das Format vorzugeben, wie in OOcalc oder Excel ?

Bei "0000" statt "###0" werden immer alle 4 Ziffern ausgegeben.

Ja das passt eh so, einfach die führende/n Null/er voran schreiben :)

Was möchtest Du wissen?