Ich konvertiere einige ganze Zahlen in Hexadezimalzahlen, aber das Problem, das ich habe, ist, wenn ich einen negativen Wert übergebe, um es in Hex umzuwandeln.Negative int in hexadezimale Konvertierung
Beispiel:
String satpos = "13.0";
String satposs=satpos.replaceAll("\\.", "");
int satposition = Integer.parseInt(satposs);
String nids = Integer.toHexString(satposition);
String finished = nids+"0000";
Anwendung gibt "820000" in diesem Fall, und das ist der richtige Wert ich brauche. Aber wenn ich übergeben:
String satpos = "-7.0";
String satposs=satpos.replaceAll("\\.", "");
int satposition = Integer.parseInt(satposs);
String nids = Integer.toHexString(satposition);
String finished = nids+"0000";
Anwendung gibt "ffffffba0000" aber ich sollte "DCA0000"
Jede Hilfe ist willkommen zu erhalten.
Warum sollte '-70' 'DCA' sein? –
Ich entwickle eine Satfinder-App, die alle Informationen über den Kanal aufnimmt und eine eindeutige ID erzeugt, die verwendet werden kann, um den Kanal vom DVB-Empfänger zu "rufen" und die Erklärung, die ich von Dev bekommen habe: 'Orbitalposition ist 13, 0 - drehe es in 130 (dez) => 82 (hex) - addiere 0000. Endergebnis Namespace = 820000' In diesem Fall ist die orbitale Position dieses Kanals -7.0 – Psycho
Welche Darstellung haben Sie für negative ganze Zahlen? Java basiert auf der Verwendung von Zweierkomplement. Die hexadezimale Darstellung von 70 ist 46, und das Zweierkomplement ist ffffffba. Wenn Sie eine andere Darstellung für negative ganze Zahlen wünschen, müssen Sie sie angeben und die Konvertierung durchführen. –