如何将字符串化二进制文件(字符串“1”和“0”)转换为相应的字符串

时间:2013-04-02 15:51:19

标签: 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代码'),但似乎没有任何效果。有谁知道我怎么能这样做?

1 个答案:

答案 0 :(得分: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;
}