2010-09-29 23 views
9

16 bitlik tamsayı (ushort/UInt16) üzerinde bitsel bir sola kaydırma gerçekleştirmem gerekiyor, ancak C# içindeki bitly operatörler yalnızca int (32 bit) uygulamasında geçerli görünüyor. Bir ushort üzerinde < <'u veya en azından basit bir çözümle aynı sonuca nasıl geçebilirim?C# ushort üzerinde bitwise shift (UInt16)

cevap

10

değişen sonra USHORT içine geri çıkan değeri Cast:

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

'örtülü' << 'operatör için uint'' dönüştürülecektir value' olacak? – xtofl

+0

neredeyse utandırıcı, bu yüzden hemen hemen aynıydı, ama etrafında parantezleri unuttum (değer 2) – KBoek

+0

@ xtofl, değer dolaylı olarak int'ye dönüştürülecektir. – driis