2011-11-14 13 views

risposta

15

Bisogna lanciare un primo momento, non c'è un solo operatore per >>>, codice di esempio:

int x = -100; 
int y = (int)((uint)x >> 2); 
Console.WriteLine(y); 
+0

hi Peer, puoi dirmi un'espressione equivalente di '(hash >>> 0)' in C#? –

+1

Se il tipo di hash è un int. È lo stesso. – Peter

7

C# 's >> dell'operatore è sensibile allo stato firmato dell'operatore (int vs uint). Se è necessario operare su un int, eseguire il cast a unit.

3

penso che sia solo >> se è firmato o non dipende dal fatto che si tratta di un int/lungo o uint/ulong, in modo che avrebbe dovuto lanciare, se necessario

0

è possibile utilizzare questo metodo al posto dell'operatore >>>.

int src1, src2, ans; 
ans = rightMove(src1 , src2); 

     int rightMove(int value, int pos) 
     { 
      if (pos != 0) 
      { 
       int mask = 0x7fffffff; 
       value >>= 1; 
       value &= mask; 
       value >>= pos - 1; 
      } 
      return value; 
     } 
Problemi correlati