_lrotl, _lrotr

ビットを左 (_lrotl) または右 (_lrotr) に回転させます。

構文

unsigned long _lrotl( unsigned long value, int shift );
unsigned long _lrotr( unsigned long value, int shift );

パラメーター

value
回転させる値。

shift
シフト valueするビット数。

戻り値

どちらの関数も、回転後の値を返します。 エラーの戻り値はありません。

解説

および_lrotr関数は_lrotlビット単位で回転valueしますshift_lrotl は、値を左に、より重要なビットに向かって回転させます。 _lrotr では、下位ビットに向かって値が右に回転します。 どちらの関数も、一方の端から他方の value 端に回転したビットをラップします。

必要条件

ルーチンによって返される値 必須ヘッダー
_lrotl, _lrotr <stdlib.h>

互換性の詳細については、「 Compatibility」を参照してください。

// crt_lrot.c

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

int main( void )
{
   unsigned long val = 0x0fac35791;

   printf( "0x%8.8lx rotated left eight bits is 0x%8.8lx\n",
            val, _lrotl( val, 8 ) );
   printf( "0x%8.8lx rotated right four bits is 0x%8.8lx\n",
            val, _lrotr( val, 4 ) );
}
0xfac35791 rotated left eight bits is 0xc35791fa
0xfac35791 rotated right four bits is 0x1fac3579

関連項目

数学と浮動小数点のサポート
_rotl, _rotl64, _rotr, _rotr64