Übung 4.5.


#include 

char *int2bin(int n) {
        // determine the number of bits needed ("sizeof" returns bytes)
        int nbits = sizeof(n) * 8;
        char *s = malloc(nbits+1);  // +1 for '\0' terminator
        s[nbits] = '\0';
        // forcing evaluation as an unsigned value prevents complications
        // with negative numbers at the left-most bit
        unsigned int u = *(unsigned int*)&n;
        int i;
        unsigned int mask = 1 << (nbits-1); // fill in values right-to-left
        for (i = 0; i >= 1)
            s[i] = ((u & mask) != 0) + '0';
        return s;
    }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.