C 程序 十进制转换为二进制

  • Post category:C

请看下文。

C程序:十进制转换为二进制

程序说明

本程序实现了将给定的十进制数转换为二进制数。对于每个输入的数字,输出与其对应的二进制数,输出结果以字符串形式呈现。

程序预备知识

本程序使用了C语言的标准库函数,建议先了解以下函数的使用方法:

  1. printf() 函数:输出函数,用于在控制台输出指定格式的内容。

  2. scanf() 函数:输入函数,用于从控制台读取指定格式的输入值。

使用攻略

以下给出十进制转换为二进制的方法以及使用本程序的方法。

十进制转换为二进制的方法

将指定的十进制数转换为二进制数的方法是:将该数除以2,除以2的余数作为二进制位。将得到的整商作为新的数继续除以2,依次类推,直至商为0时停止。

举例说明:将十进制数14转换为二进制数。

  • 第1步:将14除以2,得到商7余数0,第1位为0。

  • 第2步:将7除以2,得到商3余数1,第2位为1。

  • 第3步:将3除以2,得到商1余数1,第3位为1。

  • 第4步:将1除以2,得到商0余数1,第4位为1。

所以,14的二进制数为1110。

使用本程序

  1. 首先,在程序中定义一个int类型的变量存储十进制数,如下所示:
int dec = 14;
  1. 调用程序中的函数dec2bin(),该函数用于将给定的十进制数转换为二进制数,并以字符串形式返回。
char *dec2bin(int dec);
char *bin = dec2bin(dec);

其中,dec2bin()函数的参数为要转换的十进制数,返回值为转换后的二进制数。

  1. 在控制台输出转换后的二进制数,使用printf()函数。
printf("Int %d in binary is %s", dec, bin);

其中,%d为格式控制符,用于输出十进制整数;%s用于输出字符串。

  1. 程序运行后将会输出以下内容:
Int 14 in binary is 1110

示例说明

下面是本程序的两个示例。

示例1

十进制数8转换为二进制数。程序如下:

#include <stdio.h>

char *dec2bin(int dec);

int main()
{
    int dec = 8;
    char *bin = dec2bin(dec);
    printf("Int %d in binary is %s", dec, bin);

    return 0;
}

char *dec2bin(int dec)
{
    int i, j = 0, len = 0;
    int bin[32];
    static char binstr[33] = {0};

    while (dec)
    {
        bin[len++] = dec % 2;
        dec /= 2;
    }
    for (i = len - 1; i >= 0; i--)
    {
        binstr[j++] = bin[i] + '0';
    }
    return binstr;
}

程序运行后将会输出以下内容:

Int 8 in binary is 1000

示例2

将用户输入的十进制数转换为二进制数。程序如下:

#include <stdio.h>

char *dec2bin(int dec);

int main()
{
    int dec;
    printf("Enter a decimal number: ");
    scanf("%d", &dec);
    char *bin = dec2bin(dec);
    printf("Int %d in binary is %s", dec, bin);

    return 0;
}

char *dec2bin(int dec)
{
    int i, j = 0, len = 0;
    int bin[32];
    char *binstr = malloc(sizeof(char) * 33);

    while (dec)
    {
        bin[len++] = dec % 2;
        dec /= 2;
    }
    for (i = len - 1; i >= 0; i--)
    {
        binstr[j++] = bin[i] + '0';
    }
    binstr[j] = '\0';
    return binstr;
}

程序运行后将会输出以下内容:

Enter a decimal number: 56
Int 56 in binary is 111000

用户可以输入任意的十进制数,程序都可以将其转换为二进制数。