在 C 中将 Ascii 转换为二进制

标签 c binary ascii

这是我的代码

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/

相关文章:

c# - JSON二进制编码

c++ - 如何在 C++ 中将十六进制数字转换为二进制?

java - 比较 Ascii 代码

ascii - 字符串中奇怪的空格字符,这不是空格吗?

c - 使用 stat() 函数测试 DIRENT 是目录还是文件的正确方法是什么?

c - 使用 switch - C 后简单程序崩溃

c - 在 C 中将不同的线程汇总在一起?

c - 从十进制字符串到二进制镜像十进制的最短方法?

c - 如何检查一个字符是否是 C 中的扩展 ascii 字符?

c - NULL 实现和指针赋值