这是我的代码
void ascToBinary(int character, int *ones)
{
if(character == 1)
{
printf("1");
*ones+=1;
return;
}
else
{
if((character%2) == 0)
{
printf("0");
character = character/2;
}
else
{
printf("1");
character = character/2;
*ones+=1;
}
binaryPrinter(character, ones);
}
}
任何人都可以帮助我解决这里的问题。它编译得很好并且一些 ascii 字母正确。如果您尝试使用“e”,它会打印出“1010011”而不是正确的二进制文件。
感谢大家的帮助。
最佳答案
您以错误的顺序打印结果。正确的输出是“1100101”。你可以像这样翻转它:
void ascToBinary(int character, int *ones)
{
if(character == 1)
{
printf("1");
*ones+=1;
return;
}
else
{
char out;
if((character%2) == 0)
{
out = '0';
character = character/2;
}
else
{
out = '1';
character = character/2;
*ones+=1;
}
ascToBinary(character, ones);
putchar (out);
}
}
关于在 C 中将 Ascii 转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964692/