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; }