C++/Arduino:如何将字符串/字符串数组转换为字节?

JNK*_*JNK 4 c++ arrays byte arduino

我想转换

char lineOneC[8] = {0,1,1,0,0,0,0,1}; 
Run Code Online (Sandbox Code Playgroud)

byte lineOneB = B01100001;
Run Code Online (Sandbox Code Playgroud)

我如何在C++/Arduino中执行此操作?

Bil*_*eal 6

我不确定Adruino平台施加的具体限制,但这应该适用于任何标准编译器.

char GetBitArrayAsByte(const char inputArray[8])
{
    char result = 0;
    for (int idx = 0; idx < 8; ++idx)
    {
        result |= (inputArray[7-idx] << idx);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

如果有帮助,现在可以在Codepad上测试此代码.


小智 5

只需将0或1移到二进制格式的位置即可.像这样

char lineOneC[8] = {0,1,1,0,0,0,0,1}; 
char lineOneB = 0;
for(int i=0; i<8;i++)
{
    lineOneB |= lineOneC[i] << (7-i);
}
Run Code Online (Sandbox Code Playgroud)