请看下文。
C程序:十进制转换为二进制
程序说明
本程序实现了将给定的十进制数转换为二进制数。对于每个输入的数字,输出与其对应的二进制数,输出结果以字符串形式呈现。
程序预备知识
本程序使用了C语言的标准库函数,建议先了解以下函数的使用方法:
-
printf() 函数:输出函数,用于在控制台输出指定格式的内容。
-
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。
使用本程序
- 首先,在程序中定义一个int类型的变量存储十进制数,如下所示:
int dec = 14;
- 调用程序中的函数dec2bin(),该函数用于将给定的十进制数转换为二进制数,并以字符串形式返回。
char *dec2bin(int dec);
char *bin = dec2bin(dec);
其中,dec2bin()函数的参数为要转换的十进制数,返回值为转换后的二进制数。
- 在控制台输出转换后的二进制数,使用printf()函数。
printf("Int %d in binary is %s", dec, bin);
其中,%d为格式控制符,用于输出十进制整数;%s用于输出字符串。
- 程序运行后将会输出以下内容:
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
用户可以输入任意的十进制数,程序都可以将其转换为二进制数。