我对如何在c语言中将二进制值转换为字符感到困惑。
例如,假设我有01010110并且想要从中打印出对应的字母“V”,我该怎么做?
谢谢任何帮助!
我对如何在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);
}
输出:
01010110 = V = 86 = 0x56
参考资料:
strtol()
函数来解析字符串中的数字。最后一个参数(在本例中为 2)是用于转换的基数。char c = strtol("01010110", (char **)NULL, 2);
有关此及其他数字解析函数的更多信息,请点击这里。
做了一些略微不同的事情:
从二进制中,我进行了数学计算,然后将整数简单地转换为字符。
int i;
char c = (char)i;