I need to perform a bitwise left shift on a 16-bit integer (ushort / UInt16), but the bitwise operators in C# seem to apply to int (32-bit) only. How can I use << on an ushort, or at least get to the same result with a simple workaround?
Asked
Active
Viewed 1.3k times
1 Answers
19
Cast the resulting value back into ushort after shifting:
ushort value = 1;
ushort shifted = (ushort)(value << 2);

driis
- 161,458
- 45
- 265
- 341
-
will `value` be implicitly converted to `uint` for the `<<` operator? – xtofl Sep 29 '10 at 07:39
-
almost embarrassing, so simply this was :) I did almost the same, but forgot the brackets around (value << 2) – KBoek Sep 29 '10 at 07:41
-
@xtofl, value will be implicitly converted to int. – driis Sep 29 '10 at 07:42
-
@xtofl, `int` as @driis says. Note also that in this case, and many similar cases, the result will be the same either way. – Jon Hanna Sep 29 '10 at 08:36