Мне нужно выполнить побитовый сдвиг влево для 16-битного целого числа (ushort/UInt16), но побитовые операторы в С#, похоже, применяются только к int (32-битному). Как я могу использовать ‹‹ на ushort или, по крайней мере, получить тот же результат с помощью простого обходного пути?
С# побитовый сдвиг на ushort (UInt16)
Ответы (1)
Приведите полученное значение обратно в ushort после сдвига:
ushort value = 1;
ushort shifted = (ushort)(value << 2);
person
driis
schedule
29.09.2010
будет ли
value
неявно преобразовано в uint
для оператора <<
?
- person xtofl; 29.09.2010
почти неловко, так просто это было :) Я сделал почти то же самое, но забыл скобки вокруг (значение ‹‹ 2)
- person KBoek; 29.09.2010
@xtofl, значение будет неявно преобразовано в целое число.
- person driis; 29.09.2010
@xtofl,
int
как говорит @driis. Обратите также внимание, что в этом случае и во многих подобных случаях результат будет одинаковым в любом случае.
- person Jon Hanna; 29.09.2010