执行位移操作, 使用旋转法.
BitRotate ( 值 [, 位移 [, 大小]] )
值 | 要被操作的值. |
位移 | [可选参数] 要左移(转)的位 (正数为右移). 如果未指定, 默认为 1. |
大小 | [可选参数] 一个决定旋转大小的字符串, 默认为 (16 位/bits). 参考下文. |
"B" | 旋转位于低位字节(low-order byte) (8 bits). |
"W" | 旋转位于低位字 (low-order word) (16 bits). |
"D" | 旋转位于整个双字(entire double-word) (32 bits). |
成功: | 返回按指定位旋转后的值. |
失败: | 如果大小无效,将设置 @error. |
Local $x = BitRotate(7, 2)
; x == 28 因为 111b 左移两次是 1 1100b == 28
Local $y = BitRotate(14, -2)
; y == 32771 因为 1110b 右移两次在16位下为 1000 0000 0000 0011b == 32771
Local $z = BitRotate(14, -2, "D")
; z == -2147483645 因为 1110b 右移两次在16位下为 1000 0000 0000 0000 0000 0000 0000 0011b == 2147483645