Veröffentlicht 5. Januar 201213 j 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?
5. Januar 201213 j Da findet ein Werteüberlauf statt da der Maximale Wert für einen 32Bit int 2.147.483.647 ist.
6. Januar 201213 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.