Freigeben über


_rotr8, _rotr16

Microsoft-spezifisch

Drehen Sie die Eingabewerte nach rechts um eine bestimmte Anzahl von Bitpositionen zu dem unwichtigsten Bit.

unsigned char _rotr8( 
   unsigned char value, 
   unsigned char shift 
);
unsigned short _rotr16( 
   unsigned short value, 
   unsigned char shift 
);

Parameter

  • [in] value
    Der zu drehende Wert.

  • [in] shift
    Die Anzahl der Bits für die Drehung.

Rückgabewert

Der gedrehte Wert.

Anforderungen

Systemintern

Architektur

_rotr8

x86, ARM, x64

_rotr16

x86, ARM, x64

Headerdatei <intrin.h>

Hinweise

Im Gegensatz zu einem Verschiebevorgang nach rechts werden bei der Ausführung einer Drehung nach rechts die niedrigen Bits, die am unteren Ende verloren gehen, an die Positioen der höheren Bits verschoben.

Beispiel

// rotr.cpp
#include <stdio.h>
#include <intrin.h>

#pragma intrinsic(_rotr8, _rotr16)

int main()
{
    unsigned char c = 'A', c1, c2;

    for (int i = 0; i < 8; i++)
    {
       printf_s("Rotating 0x%x right by %d bits gives 0x%x\n", c,
                i, _rotr8(c, i));
    }

    unsigned short s = 0x12;
    int nBit = 10;

    printf_s("Rotating unsigned short 0x%x right by %d bits "
             "gives 0x%x\n",
            s, nBit, _rotr16(s, nBit));
}
  

Siehe auch

Referenz

_rotl8, _rotl16

Intrinsische Compilerfunktionen