본문 바로가기

Programming

Python signed/unsigned 처리

별건아니지만 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