例如:输入:35, 输出:0000000000100011
输入:15625,输出:0011110100001001
说明:逆序输出即可,不要求数组逆置
要求:完成函数fun(),其功能是实现十进制数到二进制字符串的转换,
其形式参数为待转换的十进制整数。
注意:部分源程序给出如下。wwjt()为测试函数。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
-------------------------------------------------------*/
#include<stdio.h>
void wwjt();
/**************************************************
十进制数转成二进制数的字符串
int number 要转换的十进制正整数
char str[] 存放二进制数的字符串
**************************************************/
void fun(int number, char str[])
{
/**********Program**********/
/********** End **********/
}
int main()
{
char binStr[17]="0000000000000000"; //用来存放双字节二进制的字符串
int number,i;
printf("请输入一个十进制正整数:");
scanf("%d",&number);
if (number > 0)
fun(number,binStr);
printf("%d转成二进制为:",number);
for (i = 15 ; i >= 0;i--) //逆序输出
putchar(binStr[i]);
wwjt();
return 0;
}
{
/**********Program**********/
int n=0;
while(number)
{
str[n++] = number&1;
number>>=1;
}
/********** End **********/
}
仅提供fun内部部分。 其它无需改动。
C语言程序:
#include <stdio.h>void wwjt();
/**************************************************
十进制数转成二进制数的字符串
int number 要转换的十进制正整数
char str[] 存放二进制数的字符串
**************************************************/
void fun(int number, char str[])
{
/**********Program**********/
int i = 0;
int j;
while(number > 0)
{
str[i++] = number % 2 + '0';
number /= 2;
}
str[16] = '\0';
/********** End **********/
}
int main()
{
char binStr[17]="0000000000000000"; //用来存放双字节二进制的字符串
int number,i;
printf("请输入一个十进制正整数:");
scanf("%d",&number);
if (number > 0)
fun(number,binStr);
printf("%d转成二进制为:",number);
for (i = 15 ; i >= 0;i--) //逆序输出
putchar(binStr[i]);
//wwjt();
return 0;
}
运行测试: