我在程序上工作。您可以输入普通数字,并且程序应首先以二进制代码进行转换,然后将其复制到字符串中。如果我启动程序并输入一个数字,什么也不会发生。
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i;
unsigned short input;
char output [18] = "";
printf("enter a positive numbern");
scanf("%hu", &input);
for (i= 16; 1; i-- )
{
output [i] = input % 2;
input = input / 2;
}
puts(output);
return 0;
}
output
应该被终止,因此您需要16个字节 short int
plus 1 for null-character
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 Operator
unsigned int bitmask = 1 << (15 - i);
output[i] = '0' + ((input & bitmask) ? 1 : 0);