【问题标题】:C - How to concatenate any combination char or int in array to binary string of type int or charC - 如何将数组中的任何组合 char 或 int 连接到 int 或 char 类型的二进制字符串
【发布时间】:2015-04-11 03:39:43
【问题描述】:

全新的董事会。我真的尝试在不陷入公共论坛的情况下解决我的编程难题,stackoverflow 帮助解决了许多问题,但我不知所措。我希望你能帮忙。

我正在尝试将数组中的单个数字字符连接/组合成一个变量,该变量采用格式为 10101010 的二进制字符串的形式。不涉及算术,所有字符都是个位数的 1 和 0。我在网上搜索了一个解决方案,我尝试了 strcat()、otoi()、sprintf() 等所有方法。我什至尝试使用字符串数组 [] 来构造我的变量,然后使用 strtoul() 转换类型.下面的代码反映了我最近的尝试,它编译成功,但似乎产生了空白字符。了解到我可能无法使用此解决方案,因此我愿意接受任何可行的解决方案。

代码:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <stdlib.h>

char digit[48] = "";

char buf[9];
snprintf(buf, sizeof buf, "%s%c", digit[16], digit[17], digit[18], digit[19], digit[20],_ 
digit[21], digit[22], digit[23]);

如您所见,我们的想法是能够从char digit[48] 中获取任何数字并将它们组合成所需的格式。老实说,我对将字符添加到新数组中不感兴趣,但我已经到了尝试任何东西的地步。我的偏好是通过单个变量访问结果,然后用于按位运算并直接输入到集成组件中。感谢您提供的任何帮助。

【问题讨论】:

    标签: c arrays binary char concatenation


    【解决方案1】:

    看看Converting an int into a base 2 cstring/string

    请注意(如果您使用的是 Linux),我认为不推荐使用的函数名称是 _itoa。

    【讨论】:

    • 我查看了建议的链接。谢谢你。但是,我想做的并不是将整数完全转换为二进制字符串。数字 1 在二进制中表示为 00000001。在我的实现中,这对我来说没什么用。我确实想将 char 数组中的 1 和 0 组合成采用二进制字符串形式的 char 或 int 变量。例如: int num = 10101010 使用数组中的字符。如果我对此不清楚,我深表歉意。
    • int atob(char *binary)
    • 非常抱歉我粗心的误解!! /* 这给出了一般的想法,有点但没有通过错误检查进行加固(非法字符和溢出)。 */ #include #include using namespace std; uint64_t decode_binary(char *binary) { uint64_t num = 0; for (char *cp = binary; *cp; cp++) { num
    • 非常抱歉我粗心的误解!! /* 这给出了一般的想法,有点但没有通过错误检查进行加固(非法字符和溢出)。 */ #include #include using namespace std; uint64_t decode_binary(char *binary) { uint64_t num = 0; for (char *cp = binary; *cp; cp++) { num
    • koan,这是 C++ 的解决方案吗?我检查了 iostream,我看到的信息表明这是特定于 C++ 的。我正在使用 C,虽然我读到它们很相似,但这种相似性对我来说并不直观。
    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2016-08-13
    • 2016-03-07
    相关资源
    最近更新 更多