Integer zu Hexadezimal konvertieren

Status des Themas:
Es sind keine weiteren Antworten möglich.

Diskutiere Integer zu Hexadezimal konvertieren im Java Basics - Anfänger-Themen Forum; hi ich fand bereits die statische Methode Integer.toHexString(). Ist ganz praktisch, ABER ich will eine Zahl aus [0,255] zu einer...

  1. Tempelbauer
    Tempelbauer Neues Mitglied
    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
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. SlaterB
    SlaterB Guest
    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?
     
  4. musiKk
    musiKk Aktives Mitglied
    Code (Text):
    System.out.printf("%02X", 10);
    gibt "0A" aus.
     
  5. SchonWiederFred
    SchonWiederFred Neues Mitglied
    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 (Text):
    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);
    }
     
  6. Marco13
    Marco13 Gesperrter Benutzer
    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)
     
  7. SchonWiederFred
    SchonWiederFred Neues Mitglied
    Du verwechselst den lexikalischen Scanner des Java Compilers mit Integer.parseInt.

    Code (Text):
    int k = Integer.parseInt("08", 16);
    System.out.println(k);
    Funktioniert einwandfrei und liefert 8 als Ergebnis.
     
  8. SchonWiederFred
    SchonWiederFred Neues Mitglied
    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 (Text):
    // 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);
     
Die Seite wird geladen...

Integer zu Hexadezimal konvertieren - Ähnliche Themen

Comperator: Integer::compare vs Subtraktion
Comperator: Integer::compare vs Subtraktion im Forum Plauderecke
Eingegeben String Splitten und in Integer umwandeln
Eingegeben String Splitten und in Integer umwandeln im Forum Allgemeine Java-Themen
(Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung)
(Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) im Forum Java Basics - Anfänger-Themen
Einlesen von Integerwertern aus einer CSV
Einlesen von Integerwertern aus einer CSV im Forum Java Basics - Anfänger-Themen
Transfer von Integer zwischen zwei Clients - RMI
Transfer von Integer zwischen zwei Clients - RMI im Forum Allgemeine Java-Themen
Status des Themas:
Es sind keine weiteren Antworten möglich.
Thema: Integer zu Hexadezimal konvertieren

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. java int nach hex