별건아니지만 Python 에서 signed/unsigned 타입을 고려해서 연산처리를 하고싶을때는 ctypes 라이브러리를 쓰면된다. 32/64비트 모두 처리가능하다. 아래의 4개의 함수 괄호속에 숫자를 주면 원하는 형태로 처리된다.
ctypes.c_int32( ).value
ctypes.c_int64( ).value
ctypes.c_uint32( ).value
ctypes.c_uint64( ).value
백문이 불여일견, 아래를 보라.
Python 2.7.4 (default, Sep 26 2013, 03:20:56)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> a = 0xffffffffffffffffL
>>> print a
18446744073709551615
>>> print ctypes.c_uint32( a ).value
4294967295
>>> print ctypes.c_uint64( a ).value
18446744073709551615
>>> print ctypes.c_int64( a ).value
-1
>>> print ctypes.c_int32( a ).value
-1
>>>
'Programming' 카테고리의 다른 글
QEMU monitor console (0) | 2014.06.16 |
---|---|
OS Kernel Debugging with VMWare (0) | 2014.06.10 |
Reverse algorithm for python binascii.crc32 (0) | 2014.06.02 |
Reverse hash("crc32") algorithm for PHP 5.5 (0) | 2014.06.02 |
How ptrace works in Linux (0) | 2014.05.29 |