Grundkenntnis
IP-> Ganzzahl:
Konvertieren Sie die IP -Adresse in Byte -Array durch die linke Verschiebung (<<), (&) oder (|) diese Operationen zu int zu int in int
Ganzzahl-> IP:
Rechte Schichtbetrieb (>>>), verschieben Sie das Recht auf 24 Bit und führen Sie den Operator (&) 0xff durch.
Rechte Schichtbetrieb (>>>), schichten Sie 16 Bits rechts und führen Sie den erhaltenen Operator (&) 0xff durch.
Rechte Schichtbetrieb (>>>) bewegen Sie sich rechts von 8 Bits und führen Sie dann den erhaltenen Operator (&) 0xff durch.
Der Ganzzahlwert wird mit dem Operator (&) 0xff durchgeführt, und die erhaltene Zahl ist die vierte IP der vierten Stufe.
Denken
IP -Adresse zum Int -Typ, zum Beispiel IP "192.168.1.116", was äquivalent zu "ist". 256, 1, und wenn es komplex ist, ist es so schnell wie möglich
Int -Typ zu IP -Adresse, ähnliche Ideen, außer für Gewichtswert, aber einige String -Operationen
Code
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define len 16 typedef unsigned int uint; ) Ca. char *token; = 0 && cur <= 255) {total += cur*pow (256, i);} i -; (char*str, int begin, int end) {int i, j; I ++, j -) {if (str [i]! ]; Str [i] = str [i] ^ str [j];}} / *** ipstan String* / char*iptstr (uint ipint) {char*new = (char*) malloc (len); (Neu, '0', Len); Token, "%d", cur); -1); Ed += 1; %s scanf ("%s scanf ("%s s "%s scanf ("%s "%s scanf ("%s scanf ("%s"%s scanf ("%s"%s scanf ("%s S" . ", ipstr)! 0;}