Тема: 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