1

Тема: CMD/BAT: Повороты и побитовый сдвиг вправо без копирования знака

Код:


:rotate_right
set /a "n=((%1 >> %2) & ((1 << (32-%2))-1)) | ((%1 & ((1 << %2) - 1)) << (32-%2))"
goto :eof

:rotate_left
set /a "n=(%1 << %2) | ((%1 >> (32-%2)) & ((1<<(%2))-1))"
goto :eof

:Logical_Right_Shift
set /a "n=(%1 >> %2) & ((1 << (32-%2))-1)"
goto :eof