在C中从二进制转换为char

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

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

谢谢你的帮助!

 #include  #include  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()
  • 正确使用strtol()

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

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

有关此和其他数字解析function的更多信息,请参见此处 。

有些不同之处:

从二进制文件中,我在数学上计算了int并简单地将int转换为char。

 int i; char c = (char)i;