i trying combine 3 bit operations in 1 line of c. 8 bit char, have set bits 2, 4, 6; clear bits 1, 3, 7 , toggle bit 0 , 5 in 1 line code of c. these in 3 line cannot combine these. below have done far:
x= x & 0xd5; x = x | 0x51; x = x ^ 0x84; they give right answer given value of x. tried
x = (x & 0xd5) | (x | 0x51) | (x ^ 0x84) and
x = x & 0xd5 | 0x51 ^ 0x84 those not work. suggestion appreciated.
it's this
x = (((x & 0xd5) | 0x51) ^ 0x84) your first try wrong, because values of x not updated operations work on same value, besides oring values not equivalent assigning result of operation x.
the second, wrong because or operator precedence, need parentheses.
Comments
Post a Comment