在C中从二进制转换为char
Posted
技术标签:
【中文标题】在C中从二进制转换为char【英文标题】:Convert from a binary to char in C 【发布时间】:2012-06-05 05:10:20 【问题描述】:我对如何在 c 中将二进制值转换为 char 感到困惑。
例如,假设我有 01010110 并想从中打印相应的字母“V”。我该怎么做呢?
感谢您的帮助!
【问题讨论】:
你有“1010110”是什么意思?寄存器中的二进制数,1/0 字符,什么? (如果是二进制值,则只需(char)
强制转换即可。)
给我们看代码!!否则我们只是在猜测。
【参考方案1】:
#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()
Correct usage of strtol()
【讨论】:
【参考方案2】:您可以使用strtol()
解析字符串上的数字。最后一个参数(在本例中为 2)是转换的基数。
char c = strtol("01010110", (char **)NULL, 2);
更多关于这个和其他数字解析函数here的信息。
【讨论】:
【参考方案3】:做了一些稍微不同的事情:
从二进制文件中,我用数学方法计算了 int,然后简单地将 int 转换为 char。
int i;
char c = (char)i;
【讨论】:
最终转换不言而喻;挥手的“从二进制中,我用数学方法计算了 int”不包含任何有用的信息。以上是关于在C中从二进制转换为char的主要内容,如果未能解决你的问题,请参考以下文章