使用字符串将dec数字转换为二进制代码
我在一个项目上工作。您可以输入一个普通数字,程序应首先将其转换为二进制代码,然后将其复制为字符串。若我启动程序并输入一个数字,什么都不会发生使用字符串将dec数字转换为二进制代码,c,arrays,string,binary,C,Arrays,String,Binary,我在一个项目上工作。您可以输入一个普通数字,程序应首先将其转换为二进制代码,然后将其复制为字符串。若我启动程序并输入一个数字,什么都不会发生 #include <stdio.h> #include <stdlib.h> int main() { int i; unsigned short input; char output [18] = ""; printf("enter a positive number\n"); scan
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i;
unsigned short input;
char output [18] = "";
printf("enter a positive number\n");
scanf("%hu", &input);
for (i= 16; 1; i-- )
{
output [i] = input % 2;
input = input / 2;
}
puts(output);
return 0;
}
#包括
#包括
int main()
{int i;
无符号短输入;
字符输出[18]=“”;
printf(“输入正数\n”);
scanf(“%hu”,&input);
对于(i=16;1;i--)
{
输出[i]=输入%2;
输入=输入/2;
}
投入(产出);
返回0;
}
输出应以NUL结尾,因此短整数需要16字节,空字符需要1字节
char output [17];
将0
的ASCII值添加到结果中以获得0
或1
for(i = 16; i >= 0; i--)
{
output[i] = '0' + input % 2;
input = input / 2;
}
最后添加空字符:
output[16] = 0;
或者,您可以使用shift运算符
unsigned int bitmask = 1 << (15 - i);
output[i] = '0' + ((input & bitmask) ? 1 : 0);
无符号整数位掩码=1这是因为'1'!=1
for(i=16;1;i--)
将永远循环。您是否尝试过调试它?'1'!=1你是说一个字符!=int?但为什么它要永远循环?