易百教程

编写程序:以二进制,十六进制和十进制形式的输出整数值

编写一个程序,将指定值以二进制,十六进制和十进制形式的输出值。

参考实现程序:

#include <stdio.h>

char *to_binary(int n);

int main()
{
    int b,x;
    b = 21;
    for(x=0;x<8;x++)
    {
        printf("%s 0x%04X %4d\n",to_binary(b),b,b);
        b<<=1;
    }
    return(0);
}

char *to_binary(int n)
{
    static char bin[17];
    int x;
    for(x=0;x<16;x++)
    {
        bin[x] = n & 0x8000 ? '1' : '0';
        n <<= 1;
    }
    bin[x] = '0';
    return(bin);
}

编译和执行上面程序,得到以下结果:

hema@ubuntu:~/book$ vim main.c
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
0000000000010101 0x0015   21
0000000000101010 0x002A   42
0000000001010100 0x0054   84
0000000010101000 0x00A8  168
0000000101010000 0x0150  336
0000001010100000 0x02A0  672
0000010101000000 0x0540 1344
0000101010000000 0x0A80 2688