Java-Forum.org  

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen: Integer zu Hexadezimal konvertieren

Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 22.07.2008, 17:32   #1
Tempelbauer
 
Integer zu Hexadezimal konvertieren - Standard Integer zu Hexadezimal konvertieren

hi

ich fand bereits die statische Methode Integer.toHexString(). Ist ganz praktisch,
ABER ich will eine Zahl aus [0,255] zu einer Hexadezimalen Zahl machen. Damit man das ganze auch wieder Rückrechnen kann, muss jede HexZahl am ende die Länge 2 haben, also z.b.

dec --> hex
16 --> 10
255 --> FF
7 --> 07

und in letzeren Beispiel liegt der Hund begraben: die Methode konvertiert ohne führende 0 (logisch, woher soll die auch wissen, das ich ne führende 0 will). wie löse ich das problem am effizientesten?

gut, ich könnte bei jeder konvertierten zahl die länge abfragen und ne 0 dran hängen. aber ich wills vermeiden wenns ne schnellere und sauberere möglichkeit gibt. denn die anzahl dieser daten die ich konvertieren will können ziemlich viele werden. ich achte deshalb stark drauf um mein code nicht unnütz aufzublähen


jm ne bessere idee?


danke
 

 
Anzeige
 

AW: Integer zu Hexadezimal konvertieren



 
Alt 22.07.2008, 17:38   #2
 
Integer zu Hexadezimal konvertieren - Standard AW: Integer zu Hexadezimal konvertieren

wieso aufblähen? du schreibst dir ne Operation
toZweierHexString(),
die das macht, dann funktioniert das, egal ob du es 1x oder 1000x aufrufst,
an einer oder zehn Stellen im Programm, was könnte sich da aufblähen?
 
Alt 22.07.2008, 18:16   #3
musiKk
 
Integer zu Hexadezimal konvertieren - Standard AW: Integer zu Hexadezimal konvertieren

Code:
System.out.printf("%02X", 10);
gibt "0A" aus.
 
Alt 23.07.2008, 10:02   #4
SchonWiederFred
 
Integer zu Hexadezimal konvertieren - Standard Re: Integer zu Hexadezimal konvertieren

Was ist denn überhaupt der Kontext, was willst Du mit den Hex-Strings machen?

Ich würde ganz auf Strings verzichten und so vorgehen:

Code:
private static final char[] hex = {
	'0', '1', '2', '3', '4', '5', '6', '7', 
	'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

public static void main(String[] args)
{
	int i = 254;
	char a = hex[i >>> 4];
	char b = hex[i & 15];
	System.out.print(a);
	System.out.print(b);
}
 
Alt 23.07.2008, 11:41   #5
Marco13
 
Integer zu Hexadezimal konvertieren - Standard AW: Integer zu Hexadezimal konvertieren

Nur als kleiner Hinweis: Wenn du dann einen String hast wie "08", musst du bei Integer.parseInt aufpassen: Durch die führende 0 wird er, wenn ich mich nicht täusche, als Oktalzahl interpretiert, und schmeißt eine NumberFormatException (musst du mal genauer prüfen)
 
Alt 23.07.2008, 11:49   #6
SchonWiederFred
 
Integer zu Hexadezimal konvertieren - Standard AW: Integer zu Hexadezimal konvertieren

Zitat: Marco13
Durch die führende 0 wird er, wenn ich mich nicht täusche, als Oktalzahl interpretiert
Du verwechselst den lexikalischen Scanner des Java Compilers mit Integer.parseInt.

Code:
int k = Integer.parseInt("08", 16);
System.out.println(k);
Funktioniert einwandfrei und liefert 8 als Ergebnis.
 
Alt 23.07.2008, 11:52   #7
SchonWiederFred
 
Integer zu Hexadezimal konvertieren - Standard AW: Integer zu Hexadezimal konvertieren

Ach so, wenn man die von mir vorgeschlagene Methode verwendet, um aus einem Integer zwei Zeichen zu machen, muss man ja auch irgendwie wieder zurückrechnen können:

Code:
// int -> hex
int i = 254;
char a = hex[i >>> 4];
char b = hex[i & 15];

// hex -> int
int k = Character.digit(a, 16) << 4 | Character.digit(b, 16);
 
Thema geschlossen    

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen: Integer zu Hexadezimal konvertieren

(Datentypen) ArrayList in Integer konvertieren
ArrayList in Integer konvertieren: Nabend miteinander, Ich habe eine ArrayList mit Charactern. Alle Chars in dieser ArrayList sind Nummern. Kann mir jemand sagen wie ich das in einen Integer konvertiere? Das erste Element in der...
BufferedReader in Integer konvertieren
BufferedReader in Integer konvertieren: Hallo Leute, bin noch Javaneuling. Hier erst mal der Code: import javax.swing.*; import java.io.*; public class IntList {
Integer in Hex (Little Endian) konvertieren
Integer in Hex (Little Endian) konvertieren: Hallo, ich möchte den primitiven Datentyp "integer" in "short" (Wertebereich -32768 bis +32767) umwandeln und danach in hex (2 byte, Little Endian). Da dies bestimmt kein neues Problem ist:...
String in Integer konvertieren
String in Integer konvertieren: Hallo, ich habe folgendes Problem: ein String der ausschließlich Zahlen enthält soll zu einem Integer konvertiert werden. z.b. String wort = "514000" zu int zahl = 514000 wie kann man sowas...




Sie betrachten gerade Integer zu Hexadezimal konvertieren