_lrotl
, _lrotr
ビットを左 (_lrotl
) または右 (_lrotr
) に回転させます。
構文
unsigned long _lrotl( unsigned long value, int shift );
unsigned long _lrotr( unsigned long value, int shift );
パラメーター
value
回転させる値。
shift
value
シフトするビット数。
戻り値
どちらの関数も、回転後の値を返します。 エラーの戻り値はありません。
解説
_lrotl
関数と_lrotr
関数は、shift
ビットでvalue
を回転します。 _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