C++ 需要解释LCD液晶程序中的一些程序行

C++ 需要解释LCD液晶程序中的一些程序行,c++,utf-8,arduino,3d,C++,Utf 8,Arduino,3d,有人能解释一下,在最后,retval与(按位或)什么比较吗?我不懂这行节目 for (int i = 0; i < n; i++) { retval |= (digitalRead(_data_pins[i]) == HIGH)?(1 << i):0; } for(int i=0;i

有人能解释一下,在最后,retval与(按位或)什么比较吗?我不懂这行节目

for (int i = 0; i < n; i++) {
    retval |= (digitalRead(_data_pins[i]) == HIGH)?(1 << i):0;
  }
for(int i=0;iretval |=(digitalRead(_data_pins[i])==高)-(1一般来说,
a |=b
等于
a=a | b

对于您的代码,expresison

retval |= (digitalRead(_data_pins[i]) == HIGH)?(1 << i):0;

希望这更容易理解。

非常感谢!这有助于我理解。很抱歉,我是个初学者
retval = retval | (digitalRead(_data_pins[i]) == HIGH)?(1 << i):0;
if (digitalRead(_data_pins[i]) == HIGH)
    retval = retval | (1 << i);
else
    retval = retval | 0;