Wie führe ich eine vorzeichenlose Rechtsverschiebung (>>> in Java) in C/C++ durch?

Lesezeit: 1 Minute

Benutzer-Avatar
geändert

Wie führe ich eine vorzeichenlose Rechtsverschiebung (>>> in Java) in C/C++ durch?

Um in C eine vorzeichenlose Verschiebung zu erhalten, führen Sie einfach eine Verschiebung bei einem vorzeichenlosen Typ durch.

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

Beachten Sie, dass es dafür keine Garantie gibt >> auf einem signierten Typ gibt Ihnen eine signierte Verschiebung in C – dies ist implementierungsdefiniertes Verhalten. Die meisten gebräuchlichen Implementierungen erzeugen jedoch eine vorzeichenbehaftete Verschiebung, wenn der Typ vorzeichenbehaftet ist.

>>> ist eine vorzeichenlose Rechtsverschiebung, also würde ich denken, dass dies in C dasselbe wäre wie

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

1371930cookie-checkWie führe ich eine vorzeichenlose Rechtsverschiebung (>>> in Java) in C/C++ durch?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy