Titik Pengetahuan Dasar
Ip-> integer:
Konversi alamat IP menjadi array byte melalui shift kiri (<<), (&), atau (|) Operasi ini menjadi int ke int ke int
Integer-> IP:
Operasi shift kanan (>>>), shift hak ke 24 bit, dan kemudian lakukan operator (&) 0xff.
Operasi shift kanan (>>>), shift 16 bit kanan, dan kemudian lakukan operator (&) 0xff.
Operasi shift kanan (>>>), pindah ke kanan 8 bit, dan kemudian lakukan operator (&) 0xff.
Nilai integer dilakukan dengan operator (&) 0xff, dan angka yang diperoleh adalah IP tahap keempat.
Pemikiran
Alamat IP untuk jenis int, misalnya, IP adalah "192.168.1.116", yang setara dengan "." Bagi alamat IP menjadi 4 bagian, dan nilai daya yang sesuai dari setiap bagian adalah 256^3, 256^2, 256, 1, dan ketika rumit, itu secepat mungkin
Jenis int ke alamat IP, ide serupa, kecuali untuk nilai berat badan, tetapi beberapa operasi string
Kode
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define len 16 typedef unsigned int uint; ) Return 0; = 0 && cur <= 255) {Total += CUR*POW (256, i);} i - (char*str, int begin, int end) {int i, j; for (i = begin, j = end; i <= j; i ++, i <= j; i ++, i <= j; I ++, j -) {if (str [i]! = Str [j]) {str [i] = str [i] ^ str [j]; ]; (New, '/0', Len); Token, "CUR); -1); untuk (bt = ed = 0; ed <len;) {while (ed <len && new [ed]! = '.') {Ed ++} swapstr (baru, bt, ed -1); Ed += 1; bt = ed;} baru [len- 1] = '/0'; %s scanf ("%s scanf ("%s s "%s scanf ("%s s "%s scanf ("%s scanf ("%s s"%s scanf ("%s s"%s scanf ("%s ", ipstr)! = eof) {ipint = iptint (ipstr); propf ("%u/n ", ipint); baru = iptstr (ipint); printf ("%s/n ", baru);} 0;}