Express bitwise negation (`NOT`, bitwise complement) using other bitwise operations?

288 Views Asked by At

I am writing an algorithm in a limited language where the bitwise operators at my disposal are

  • AND: &
  • OR: |
  • XOR: ^
  • SRL: << (shift left)
  • SLL: >> (shift right)

I realized I need to be able to take the bitwise complement of an integer, commonly denoted ~x in other languages.

Could I somehow express ~x, using only the {&, |, ^, <<, >>} operators?

I would try to just implement this operator in the language’s compiler, but it seems like a very challenging task. I would much rather do some dirty hack to express NOT x without ~.

0

There are 0 best solutions below