Les opérateurs double || et && sont des opérateurs logiques.
Les opérateurs simples | et & sont des opérateurs binaire.
| réalise un OU bit à bit.
& réalise un ET bit à bit.
L'opérateur ^, quant à lui, est un XOR.
Ca, plus les décalages << et >>. A priori, il y en a d'autres, mais je ne les ai jamais rencontré "en vrai".
Accessoirement, la réponse à la devinette est "indéterminée", la valeur de sizeof(int) dépendant de la plate-forme. A moins de fixer le contexte, il n'y a pas d'autre réponse.