2010-09-29 17 views
9

È necessario eseguire uno spostamento a sinistra bit a bit su un numero intero a 16 bit (ushort/UInt16), ma gli operatori bit a bit in C# sembrano applicabili solo a int (32 bit). Come posso utilizzare < < su un ushort o almeno ottenere lo stesso risultato con una soluzione semplice?C# bitwise shift on ushort (UInt16)

risposta

10

cast del valore risultante di nuovo in USHORT dopo lo spostamento:

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

sarà 'value' essere convertito in modo implicito' uint' per la << '' operatore? – xtofl

+0

quasi imbarazzante, così semplicemente questo era :) Ho fatto quasi lo stesso, ma ho dimenticato le parentesi intorno (valore << 2) – KBoek

+0

@xtofl, il valore sarà convertito implicitamente in int. – driis