bitwise operation version