11

我对如何将二进制值转换为 c 中的字符感到困惑。

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

谢谢你的帮助!

4

3 回答 3

17
#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

参考:

于 2012-05-30T22:38:53.713 回答
6

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

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

有关此功能和其他数字解析功能的更多信息,请点击此处

于 2012-05-30T22:42:44.063 回答
-2

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

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

int i;
char c = (char)i;
于 2012-05-30T23:09:47.120 回答