在C语言中从二进制文件转换为字符

在C语言中从二进制文件转换为字符,c,character-encoding,binary,char,type-conversion,C,Character Encoding,Binary,Char,Type Conversion,我对如何在c中从二进制值转换为字符感到困惑 例如,假设我有01010110,并希望打印相应的字母“V”。我该怎么做 谢谢你的帮助 #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);

我对如何在c中从二进制值转换为字符感到困惑

例如,假设我有01010110,并希望打印相应的字母“V”。我该怎么做

谢谢你的帮助

#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);
}
参考资料:

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

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

有关此函数和其他数字解析函数的更多信息。

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

从二进制中,我用数学方法计算了int,并简单地将int转换成一个字符

int i;
char c = (char)i;

你说“1010110”是什么意思?寄存器中的二进制数,1/0字符,什么?(如果是二进制值,您只需要一个
(char)
转换即可。)显示代码!!否则我们就是在猜测。最终的转换是不言而喻的;“从二进制中,我用数学方法计算了整数”的挥手不包含任何有用的信息。
int i;
char c = (char)i;