ROL과 ROR은 비트 연산입니다.
ROL
ROL은 7번에 있던 숫자를 CF와 0번에 복사를 하는 어셈블리 코드 입니다.
ROR
ROR은 ROL과 반대로 0번에 있던 숫자를 CF와 7번에 복사를 하는 어셈블리 코드 입니다.
ROL과 ROR을 파이썬으로 구현하면 아래와 같습니다.
def rol(x, n):
shiftBit = x << n
shiftBit &= 255
carryBit = x >> 8 - n
return shiftBit | carryBit
def ror(x, n):
shiftBit = x >> n
carryBit = x << (8 - n)
carryBit &= 255
return shiftBit | carryBit