2010-09-29 11 views
9

Necesito realizar un desplazamiento a la izquierda bit a bit en un entero de 16 bits (ushort/UInt16), pero los operadores bit a bit en C# parecen aplicarse solo a int (32 bits). ¿Cómo puedo usar < < en un ushort, o al menos obtener el mismo resultado con una solución simple?C# bitwise shift en ushort (UInt16)

Respuesta

10

Fundido el valor resultante de nuevo en ushort después de cambiar:

ushort value = 1; 
ushort shifted = (ushort)(value << 2); 
+0

se 'valor' puede convertir implícitamente a' uint' para el '' << operador? – xtofl

+0

casi embarazoso, así que simplemente esto fue :) Hice casi lo mismo, pero olvidé los corchetes (valor << 2) – KBoek

+0

@xtofl, el valor se convertirá implícitamente en int. – driis