_lrotl、_lrotr
ビットの並びを左方向 (_lrotl 関数) または右方向 (_lrotr 関数) に回転します。
unsigned long _lrotl(
unsigned long value,
int shift
);
unsigned long _lrotr(
unsigned long value,
int shift
);
パラメーター
value
ビットを回転する値。shift
値をシフトされるビット数。
戻り値
関数は、回転後の値を返します。 エラーの戻り値はありません。
解説
_lrotl と _lrotr 関数は shift ビットで 値を 切り替えます。 _lrotl は値を左に回転します。 _lrotr は値を右に回転します。 いずれの関数も、value の一方の端からあふれたビットを他方の端から取り込みます。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_lrotl |
<stdlib.h> |
_lrotr |
<stdlib.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_lrot.c
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
unsigned long val = 0x0fac35791;
printf( "0x%8.8lx rotated left eight times is 0x%8.8lx\n",
val, _lrotl( val, 8 ) );
printf( "0x%8.8lx rotated right four times is 0x%8.8lx\n",
val, _lrotr( val, 4 ) );
}
出力
0xfac35791 rotated left eight times is 0xc35791fa
0xfac35791 rotated right four times is 0x1fac3579
同等の .NET Framework 関数
使用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。