Ich habe hier ein If Vergleich, den möchte ich besser verstehen lernen was und warum er dies tut:
1 | uint8_t write_buffer[20]; |
2 | uint8_t Var; |
3 | |
4 | write_buffer[10] = (Var & 0x80) ? 8:2; |
Ich verstehe dies so: in das Array write_buffer an Position 10 wird entweder eine 8 oder 2 geschrieben wenn in der Variable Var die Bitposition (mask)0b1000 0000 gesetzt ist? Wie stelle ich dies um das ich aus write_buffer[10] (je nachdem ob dort eine 8 oder 2 steht) die Bitposition in Var setze?