Описание функции


BitRotate

Выполняет операцию циклического побитового сдвига.

BitRotate(value[,shift=1[,size='W']])

Параметры

value Число.
shift [необязательный] Число битов для сдвига влево (отрицательные числа означают сдвиг вправо). По умолчанию равно 1.
size [необязательный] Символ, указывающий число битов, участвующих в циклическом сдвиге. По умолчанию - 'W' (16 битов). См. ниже.

Параметр size:
'B' сдвигать биты младшего байта (8 битов).
'W' сдвигать биты младшего слова (16 битов).
'D' сдвигать биты двойного слова (32 битов).

Возвращаемое значение

Успех:Возвращает результат указанного сдвига.
Ошибка:Устанавливает значение @error, если параметр size задан неверно
Операции над битами выполняются только для 32-битовых целых чисел..

Примечания

В качестве значений параметров функции можно использовать шестнадцатеричное представление чисел.

Функцию можно подключить через команду exect

См. также

BitShift, BitAND, BitNOT, BitOR, BitXOR, Hex

Примеры:
 Как создать кнопку?

; i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i! Комментарий i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
; ротация - движение по кругу, все биты сдвигаются вправо, а последний перемещается в начало, или наоборот.
BitRotate(7,2)
;  возвращает 28 потому что 7 с двойной ротацией преобразуется в 28
;   7 в бинарном виде 0000000000000111
; 28 в бинарном виде 0000000000011100

BitRotate(14,-2)
; возвращает 32771 потому что 14 с двойной ротацией вправо в пределах 16 битной разрядности преобразуется в 32771
;      14 в бинарном виде 0000000000001110
; 32771 в бинарном виде 1000000000000011

BitRotate(14,-2,'D')
;  возвращает -2147483645 потому что 14 с двойной ротацией вправо в пределах 32 битной разрядности преобразуется в -2147483645
;                14 в бинарном виде 00000000000000000000000000001110
; -2147483645 в бинарном виде 10000000000000000000000000000011
; i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!

exect=BitRotate(7,2) GLOBALEXECT<a> ;; выполняет операцию циклического побитового сдвига. (возвращает 28)


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru