ローテーションをともなったビットシフト演算子として働きます。
BitRotate ( value , shift [, size] )
パラメータ
value | 操作する数値 |
shift | 左にローテーションするビット数。(負の値では右にシフトします。) 値が与えられていない場合、デフォルト値1が使用されます。 |
size | [オプション] ローテーションサイズを決定する文字、デフォルトは16ビット。下表を参照。 |
"B" | 8 ビット(low-order byte)でローテーションします。 |
"W" | 16 ビット(low-order word)でローテーションします。 |
"D" | 32 ビット(entire double-word)でローテーションします。 |
返し値
成功: | 指定されたビット数でローテーションされた値を返します。 |
失敗: | sizeが無効な場合@errorを設定します。 |
注意
16進数表現を使用することができます。
関連
BitShift, BitAND, BitNOT, BitOR, BitXOR, Hex
例
$x = BitRotate(7, 2)
; 111b を左に2回ローテーションさせると1 1100b == 28 なのでx == 28
$y = BitRotate(14, -2)
; 1110b を16ビットで右に2回ローテーションさせると1000 0000 0000 0011b == 32771なのでy == 32771
$z = BitRotate(14, -2, "D")
; 1110b を32ビットで右に2回ローテーションさせると1000 0000 0000 0000 0000 0000 0000 0011b == 2147483645なのでz == -2147483645