程序设计:此程序功能将输入的十进制整数num(num<=65535)转换为二进制(双字节,16位)输出。

例如:输入: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;
}

第1个回答  2017-06-01
void fun(int number, char str[]) 
{

/**********Program**********/
int n=0;
while(number)
{
    str[n++] = number&1;
    number>>=1;
}
/********** End **********/

}

仅提供fun内部部分。 其它无需改动。 

第2个回答  2017-06-01

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;
}


运行测试:

相关了解……

你可能感兴趣的内容

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