c语言,输入一个double型的十进制数,输出其二进制数。

如题所述

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

void double_to_bits(double val);

int main(void)
{
    unsigned idx;

    double vals[] = { -1.0, 0.0, 1.0, 2.0, 1};

    for (idx = 0; idx < 5; idx++ ) {
        printf("\nvals[%u]= %+lf-->>", idx, vals[idx] );
        double_to_bits(vals[idx] );
    }
    printf("\n");

    return 0;
}

void double_to_bits(double val)
{
    unsigned idx;
    unsigned char arr[sizeof val];

    memcpy (arr, &val, sizeof val);

    for (idx=CHAR_BIT * sizeof val; idx-- ; ) {
        putc(
                ( arr[idx/CHAR_BIT] & (1u << (idx%CHAR_BIT) ) )
                ? '1'
                : '0'
                , stdout
            );
    }
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网