Sdílet prostřednictvím


_rotl, _rotl64, _rotr, _rotr64

Otočí bitů doleva (_rotl) nebo doprava (_rotr).

unsigned int _rotl( 
   unsigned int value, 
   int shift  
); 
unsigned __int64 _rotl64( 
   unsigned __int64 value,  
   int shift 
); 
unsigned int _rotr( 
   unsigned int value, 
   int shift  
); 
unsigned __int64 _rotr64( 
   unsigned __int64 value, 
   int shift 
);

Parametry

  • hodnota
    Hodnota otočit.

  • shift
    Počet bitů na směny.

Vrácená hodnota

Otočený hodnota.Neexistuje žádná chyba návratu.

Poznámky

_rotl a _rotr funkce otočit nepodepsaný hodnotu podle shift bitů._rotlHodnota doleva otočí._rotrotočí pravé hodnoty.Obě funkce obtékání bitů otočený vypnout jeden konec hodnotu za jiným účelem.

Požadavky

Rutina

Požadované záhlaví

_rotl _rotl64

<stdlib.h>

_rotr _rotr64

<stdlib.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Knihovny

Všechny verze C Runtime knihovny.

Příklad

// crt_rot.c
/* This program shifts values to rotate an integer.
 */

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   unsigned val = 0x0fd93;
   __int64 val2 = 0x0101010101010101;

   printf( "0x%4.4x rotated left three times is 0x%4.4x\n", 
           val, _rotl( val, 3 ) );
   printf( "0x%4.4x rotated right four times is 0x%4.4x\n", 
           val, _rotr( val, 4 ) );

   printf( "%I64x rotated left three times is %I64x\n",
           val2, _rotl64( val2, 3 ) );
   printf( "%I64x rotated right four times is %I64x\n", 
           val2, _rotr64( val2, 4 ) );
}

Výsledek

0xfd93 rotated left three times is 0x7ec98
0xfd93 rotated right four times is 0x30000fd9
101010101010101 rotated left three times is 808080808080808
101010101010101 rotated right four times is 1010101010101010

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Podpora plovoucí desetinné čárky

_lrotl, _lrotr