모두가 알고 있다 싶이 Python의 변수 선언의 애초 초기 그 사이즈를 설정하지 않는다.
다만 변수에 첫 인자 값을 넣음으로서 변수의 Type이 결정되기 때문이다.
필자와 같이 C 또는 C++를 우선적으로 접해봤다면 이 부분에 대한 거부감이 들 수 있다.
Python으로 작업을 수행하던 중 회전 시프트 연산을 수행해야할 경우가 있었다.
물론 module을 찾아보면 나올지도 모르겠으나. 현재 필자가 알고 있는 Rotation Shift Function은 어느 모듈에 어느 위치에 있는지 모른다.
그리하여 손수 함수를 작성해 보았다.
>def rol_Dword(value, rotation):
> tail = value >> (32-rotation)
> head = (value - (tail << (32 - rotation))) << rotation
> return head + tail
>def ror_Dword(value, rotation):
> tail = value >> rotation
> head = (value - (tail << rotation)) << (32 - rotation)
> return head + tail
위 코드는 입렵 값에 대한 검증이 되어 있지 않은 상태 이므로 사용 시 Argument에 대한 사이즈 검증을 하는것이 좋다.