alpa021 Geschrieben 5. Januar 2012 Geschrieben 5. Januar 2012 hi ich habe folgende methode. public static int IP(int a, int b, int c, int d) { return ((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | (d & 0xFF); } die soll mir ein eine IP addresse in ein Integer umwandeln. Wenn ich nun zum beispiel: 210.94.10.1 eingeben will, dann müsste ja eigentlich als integer 3529378305 rauskommen. Komischerweisse kommt bei mir sowas -765588991 raus? Versteh ich nicht so ganz. Kann mir da einer weiterhelfen?
Guybrush Threepwood Geschrieben 5. Januar 2012 Geschrieben 5. Januar 2012 Da findet ein Werteüberlauf statt da der Maximale Wert für einen 32Bit int 2.147.483.647 ist.
speedi Geschrieben 6. Januar 2012 Geschrieben 6. Januar 2012 raiserle schrieb: unsigned int sollte helfen Seit wann gibt's das denn bei Java? Ansonsten: einfach Long nehmen. Und beim ausrechnen das casten nicht vergessen, sonst wird das Ergebnis zwar ein Long, die Rechnung bleibt aber int.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden