string dual ausgeben
-
Hallo.
Ich möchte eine Netzmaske welche als string eingegeben wurde (z.b. 255.255.255.0) als Dualzahl wieder ausgeben.
Hab leider keine Ahnung wie ich das realisiere. Google hat mir auch nicht weitergeholfen.Hat jemand n Tip??
-
#include <stdio.h> #include <stdint.h> int main() { char netmask_str[] = "255.255.255.0"; unsigned int octets[4]; uint32_t netmask = 0; /* unsigned 32 bit integer. Je nach Compiler kann der Typ leicht anders heißen */ int i; /* Einzelne Oktette einlesen */ sscanf(netmask_str, "%u.%u.%u.%u", &octets[0], &octets[1], &octets[2], &octets[3]); /* Ganze IP zusammenfügen */ for(i = 0; i < 4; ++i) { netmask <<= 8; netmask += octets[i]; } /* Binäre ausgabe: */ for(i = 31; i >= 0; --i) putchar((netmask >> i & 1) ? '1' : '0'); putchar('\n'); return 0; }