この C++ コードのセグメントを C# に変換しようとしています。
if (latch_state & 0x1) {
MC->setPin(AIN2pin, HIGH);
} else {
MC->setPin(AIN2pin, LOW);
}
if (latch_state & 0x2) {
MC->setPin(BIN1pin, HIGH);
} else {
MC->setPin(BIN1pin, LOW);
}
if (latch_state & 0x4) {
MC->setPin(AIN1pin, HIGH);
} else {
MC->setPin(AIN1pin, LOW);
}
if (latch_state & 0x8) {
MC->setPin(BIN2pin, HIGH);
} else {
MC->setPin(BIN2pin, LOW);
}
問題にならないように変換するのに十分な知識MC->setPin(PinNum, state)
がMC.setPin(pinNum, state)
ありますが、ifステートメントがどうなるかについて混乱しています。
latch_state
はタイプuint8_t
ですが、バイトのように処理されているようで(これは私が変換しようとしていたものです)0x1
、バイトのようにも見えます。
では、バイナリと演算は if ステートメントでどのように評価されるのでしょうか?
変換のために、私はするべきですか
if ((latch_state & 0x1) == 0x0)
それともif ((latch_state & 0x1) != 0x0)
まったく違うものですか?