【问题标题】:how can i convert binary to string in c [closed]我如何在c中将二进制转换为字符串[关闭]
【发布时间】:2017-08-28 12:01:08
【问题描述】:

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

该函数应返回“Hello World”。

【问题讨论】:

  • 这真的像家庭作业。请添加您自己的尝试。如果您有任何具体问题,我们很乐意为您提供帮助。
  • int 的哪一部分是值?你都尝试了些什么?向我们展示一些努力,我们会帮助您...
  • 这不是完成家庭作业的网站!
  • @Feathercrown 这不是重复的。 OP表示将二进制(int类型)转换为字符串的函数
  • @LPs 啊,很好。我收回了我的旗帜。

标签: c string binary


【解决方案1】:

基本上,您必须将二进制代码转换为十进制数(参见http://www.asciitable.com/ 处的表格)。例如。 - 01001000 = 72 (ASCII -> H), 01100101 = 101 (ASCII -> e), etc...二进制和十进制之间的转换非常简单: 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)

【讨论】:

  • OP 的状态输入是一个字符串
【解决方案2】:

我认为 strtol 是你应该走的路。

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

和平地分解你的字母 o 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);
}

【讨论】:

  • 在其他方法中,您可以从 bin 转换为 int 并使用 char c = (char) int_val;
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 哥特。我将编辑答案。
猜你喜欢
  • 2017-05-14
  • 2020-09-16
  • 1970-01-01
  • 2016-07-16
  • 2022-08-16
  • 1970-01-01
  • 2012-01-22
  • 2020-02-13
  • 1970-01-01
相关资源
最近更新 更多