2010-03-11 4 views

Antwort

15

>>> unsigned Verschiebung nach rechts ist, so würde ich denken, dass in C dies das gleiche wie

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

In C, wäre eine Verschiebung ohne Vorzeichen zu erhalten, haben Sie nur eine Verschiebung auf einen Typ ohne Vorzeichen.

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

Hinweis, dass es keine Garantie dafür gibt, dass >> auf einem unterzeichneten Typ gibt Ihnen eine signierte Verschiebung in C - diese Implementierung definiert Verhalten. Die meisten gängigen Implementierungen erzeugen eine signierte Verschiebung, wenn der Typ jedoch signiert ist.