How to print bit of a double number in C

1 Answer

0 votes
#include <stdio.h>

union U {
    double value;
    char arr[sizeof(double)];
};
void print_bits(double n)
{
    union U u;
    u. value = n;

    for (int j = sizeof(double) - 1; j >= 0; j--) {
        for (int i = 128; i; i >>= 1)
            if (i & u.arr[j])
                printf("1");
            else
                printf("0");
    }

    printf("\n");
}

int main()
{
    double n = 3.14;
    
    print_bits(n);

    return 0;
}


/*
run:

0100000000001001000111101011100001010001111010111000010100011111

*/

 



answered Mar 17, 2018 by avibootz

Related questions

1 answer 149 views
149 views asked Mar 16, 2018 by avibootz
1 answer 112 views
1 answer 126 views
1 answer 141 views
1 answer 110 views
1 answer 130 views
1 answer 95 views
...