c - 如何将字符串化的二进制文件(由 "1"和 "0"组成的字符串)转换为相应的 char 字符串

标签 c string binary arduino ascii

给定一个字符串化的二进制表示,我想将其转换回真正的二进制,它将被视为字符。例如,字符串 01000001 01000010 01000011 01000001应该转换为“ABCA”,因为“A”的 ASCII 是 65,它是二进制 01000001 ,等等。

反方向转换函数如下:

String getBinary(String str) {
    String message = str;
    int length = message.length();
    String binaryNumber = "";

    for(int i = 0; i <= length; i++) {
        char c = message.charAt(i);
        binaryNumber = binaryNumber + String(c, BIN) + " ";
    }

    return binaryNumber;
}

我尝试了很多 C++、C 和 Java 的东西(并将其转换为“Arduino 代码”),但似乎没有任何效果。有谁知道我该怎么做?

最佳答案

我认为这应该可行,但老实说,我还没有测试过:

String debinaryStringify(String source) {
    String result = "";
    int idxStart = 0;
    do {
        char val = 0;
        for (int i=0; i<8; i++) {
            val += ((source.charAt(idxStart+i) == '1') << (7-i)); // Trick: Assignment of an evaluation result
        }
        result.concat(val);
        idxStart = source.indexOf(' ') + 1;
    } while ( (idxStart > 0) && (idxStart < source.length() - 7) );
    return result;
}

关于c - 如何将字符串化的二进制文件(由 "1"和 "0"组成的字符串)转换为相应的 char 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768554/

相关文章:

c - 试图找到访问数组元素的不同方法?

java - 二进制转字符矩阵帮助

c - 在 C 中提取位并重建

c - 如何在C中将16位值拆分为两个8位值

c - 二维数组作为函数参数

c - 安全存储 AES key

c - 在字符串中添加一个字符并打印它会在 C 中打印乱码

python - 如何在所有 Dictionary.Values() 中搜索字符串中的所有字符

c - 如果密码包含字符串终止字符,那么我如何将其作为 cmd 行中的输入

c - 为什么在bpf_helpers中定义了load_half,但在filter.c中却没有出现?