Операторы побитового и сдвига включают унарное побитовое дополнение, двоичное смещение влево и вправо, сдвига без знака вправо, а также двоичные логические операторы AND, OR и монопольные операторы OR. Эти операнды принимают операнды целочисленных типов или типа char .Унарный оператор ~ (побитовое дополнение)Бинарные операторы<< (shift влево), >> (shift вправо) и >>> (смещение вправо без знака)Бинарные операторы & (логическое и), | (логическое или) и ^ (логическое исключающее или)Эти операторы определены для типов int, uint, long и ulong. Если оба операнда имеют другие целочисленные типы (sbyte, byte, short, ushort или char), их значения преобразуются в тип int, который также является типом результата операции. Если операнды имеют разные целочисленные типы, их значения преобразуются в ближайший содержащий целочисленный тип. Дополнительные сведения см. в разделе Числовые повышения уровня в статье Спецификации языка C#. Составные операторы (например, >>=) не преобразуют свои аргументы в int и не имеют тип результата как int.Операторы &, | и ^ также определены для операндов типа bool. Дополнительные сведения см. в разделе Логические операторы.Побитовые операции и операции сдвига никогда не вызывают переполнение и дают одинаковые результаты в проверенных и непроверенных контекстах.Надеюсь правильно