在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;