-1

给定一个字符串化的二进制表示,我想将它转换回真正的二进制,它将被视为字符。例如,字符串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 代码”),但似乎没有任何效果。有谁知道我该怎么做?

4

1 回答 1

0

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

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;
}
于 2013-04-02T16:43:11.953 回答