1 Pluspunkt 0 Minuspunkte
Wenn ich eine IP Adresse habe wie z.B 192.168.0.1 wie kann ich dann die einzelnen Oktette in binär darstellen?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist ein Beispiel zum Anzeigen einer IP Adresse in binärer Form.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


// Funktion zur Umwandlung eines Oktetts in eine Binärdarstellung
void decimalToBinary(int num, char *binary) {

    for (int i = 7; i >= 0; i--) {
        binary[7 - i] = (num & (1 << i)) ? '1' : '0';
    }
    binary[8] = '\0'; // Nullterminierung

}


int main() {

    char ip[] = "192.168.0.1"; // Beispiel-IP-Adresse
    int octets[4];            // Array für die 4 Oktette
    char binary[9];           // String für die Binärdarstellung eines Oktetts (8 Bits + Nullterminierung)

    // IP-Adresse in Dezimalwerte aufteilen
    if (sscanf(ip, "%d.%d.%d.%d", &octets[0], &octets[1], &octets[2], &octets[3]) != 4) {

        printf("Ungültige IP-Adresse!\n");
        return 1;

    }

    printf("IP-Adresse: %s\n", ip);
    printf("Binäre Darstellung:\n");

    // Jedes Oktett in Binär umwandeln und ausgeben
    for (int i = 0; i < 4; i++) {

        decimalToBinary(octets[i], binary);
        printf("%s ", binary);

    }

    printf("\n");

    return 0;

}
von (868 Punkte)