Я знаю, что поведение >> в значении integer может быть зависимым от реализации (в частности, если левый операнд отрицательный).
Как насчет остальных: ~, >>, &, ^, |?
Когда их операнды подписаны целыми числами встроенного типа (short, int, long, long long), гарантируются, что результаты будут одинаковыми (с точки зрения содержимого бит), как если бы их тип был неподписанным
