2010-03-11 22 views

Respuesta

15

>>> es turno sin firmar derecha, por lo que podría pensar que en C esto sería lo mismo que

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

En C, para obtener un turno sin firmar, que acaba de hacer un cambio en un tipo sin signo.

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

Tenga en cuenta que no hay ninguna garantía de que >> en un tipo firmado le da un cambio firmado en C - esta es la implementación comportamiento definido. Sin embargo, las implementaciones más comunes producen un cambio firmado si el tipo está firmado.

Cuestiones relacionadas