【问题标题】:Convert from a binary to char in C在C中从二进制转换为char
【发布时间】:2012-06-05 05:10:20
【问题描述】:

我对如何在 c 中将二进制值转换为 char 感到困惑。

例如,假设我有 01010110 并想从中打印相应的字母“V”。我该怎么做呢?

感谢您的帮助!

【问题讨论】:

  • 你有“1010110”是什么意思?寄存器中的二进制数,1/0 字符,什么? (如果是二进制值,则只需 (char) 强制转换即可。)
  • 给我们看代码!!否则我们只是在猜测。

标签: c character-encoding binary char type-conversion


【解决方案1】:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char *data = "01010110";
    char c = strtol(data, 0, 2);
    printf("%s = %c = %d = 0x%.2X\n", data, c, c, c);
    return(0);
}

输出:

01010110 = V = 86 = 0x56

参考资料:

【讨论】:

    【解决方案2】:

    您可以使用strtol() 解析字符串上的数字。最后一个参数(在本例中为 2)是转换的基数。

    char c = strtol("01010110", (char **)NULL, 2);
    

    更多关于这个和其他数字解析函数here的信息。

    【讨论】:

      【解决方案3】:

      做了一些稍微不同的事情:

      从二进制文件中,我用数学方法计算了 int,然后简单地将 int 转换为 char。

      int i;
      char c = (char)i;
      

      【讨论】:

      • 最终转换不言而喻;挥手的“从二进制中,我用数学方法计算了 int”不包含任何有用的信息。
      猜你喜欢
      • 1970-01-01
      • 2012-02-24
      • 2021-11-14
      • 1970-01-01
      • 2011-06-21
      • 2022-11-07
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多