2010-03-11 5 views

Répondre

15

>>> est décalage droit non signé, donc je pense que dans C ce serait la même chose que

unsigned int foo; 
unsigned int bar = foo >> whatever; 
24

En C, pour obtenir un changement non signé, vous venez de faire un changement sur un type non signé.

unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount; 

Notez qu'il n'y a aucune garantie que >> sur un type signé vous donne un changement signé en C - ce comportement est défini de mise en œuvre. La plupart des implémentations communes produisent un décalage signé si le type est signé, cependant.

Questions connexes