如何在c中将二进制转换为字符串

时间:2017-04-03 14:46:36

标签: c string binary

我想创建一个将二进制(int类型)转换为字符串的函数。 例如:如果我有这个 01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100

该函数应返回" Hello World"。

2 个答案:

答案 0 :(得分:2)

基本上,你必须转换十进制数字的二进制代码(参见http://www.asciitable.com/表)。例如。 - 01001000 = 72(ASCII - > H),01100101 = 101(ASCII - > e)等...二进制和十进制之间的转换非常简单: 01001000 = (0 * 10 ^ 7)+(1 * 10 ^ 6)+(0 * 10 ^ 5)+(0 * 10 ^ 4)+(1 * 10 ^ 3)+(0 * 10 ^ 2)+(0 * 10 ^ 1)+(0 * 10 ^ 0)= 0 + 64 + 0 + 0 + 8 + 0 + 0 + 0 = 72(ASCII码= H)

答案 1 :(得分:-1)

我认为strtol是你应该去的方式。

https://www.tutorialspoint.com/c_standard_library/c_function_strtol.htm

在8号和平中打破你的信件,以获得个人的角色。

这里有一个例子: Convert from a binary to char in C

编辑:

#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);
}