如何将一串二进制数转换为 C 中的字符(每个字符必须有一个半字节)?

How can I convert a string of binary numbers into characters in C (each character has to have a nibble)?

我已经在寻找可用于将我的二进制数字字符串转换为 ASCII 字符字符串的有用函数。我尝试使用这些 C++ 库转换字符串

#include <sstream>
#include <iostream> 

但我的编程环境(来自国家仪器的CVI)没有它们。 如果有人有转换函数的例子,我会很高兴! 提前致谢。

你的问题很含糊,没有显示实际尝试,这使得你更难理解你的意思。

也许是这样的:

#include <stdio.h>

void hexprint(char *out, const void *in, size_t length)
{
  const static char hexdigits[] = "0123456789abcdef";
  const unsigned char *bin = in;
  while (length--) {
    const unsigned char here = *bin++;
    *out++ = hexdigits[here >> 4];
    *out++ = hexdigits[here & 15];
  }
  *out = '[=10=]';
}

int main(void)
{
    char buf[32], data[] = {0xde, 0xad, 0xf0, 0x0d, 0xba, 0xbe };
    hexprint(buf, data, sizeof data);
    printf("Got '%s'\n", buf);
    return 0;
}

这会打印 Got 'deadf00dbabe'。请注意,输出缓冲区被默认为 Big Enough(TM),请注意。