[pyar] Bitwise not..

Alejandro Santos listas en alejolp.com
Jue Jun 17 02:11:51 ART 2010


On 16/06/10 18:32, Claudio Freire wrote:
>
>
> 2010/6/16 Alejandro J. Cura <alecu en protocultura.net
> <mailto:alecu en protocultura.net>>
>
>     2010/6/15 Roberto Alsina <ralsina en netmanagers.com.ar
>     <mailto:ralsina en netmanagers.com.ar>>:
>      > On Tuesday 15 June 2010 16:37:31 John Rowland Lenton wrote:
>      >> On Tue, Jun 15, 2010 at 04:02:13PM -0300, Roberto Alsina wrote:
>      >> > On Tuesday 15 June 2010 15:18:21 Claudio Freire wrote:
>      >> > >
>      >> > >
>      >> > > Los enteros simples (int) son del tamaño de palabra nativo de la
>      >> > > máquina donde corre python.
>      >> >
>      >> >
>      >> >
>      >> > Ouch! Santa no-multiplataforma Batman!
>      >>
>      >> si estás "twiddling bits", ya lo sabés de antes :)
>      >
>      > La verdad... cuando hacía eso en C o C++ sabía, y entonces usaba
>     tipos con
>      > tamaño definido (uint_32, etc). Ahora, en python como creo un
>     entero de 32
>      > bits en una plataforma de 64 y viceversa?
>
>      >>> import struct
>      >>> struct.pack("i",1)
>     '\x01\x00\x00\x00'
>      >>> struct.pack("q",1)
>     '\x01\x00\x00\x00\x00\x00\x00\x00'
>
>
> Hm... no parece cumplir la función requerida:
>

Lo que dice Alecu está bien, el problema es la pregunta original.

En Python no hay forma de crear una variable de 32 bits como en C/C++ (a 
menos que uses numpy como ya comentaron).

Lo más parecido que hay es representar un entero a su versión de 32 
bits; para eso se usa struct.

Python oculta un monton de cosas, por ejemplo la representación de los 
long() internamente es modulo 2**15:

http://docs.python.org/dev/whatsnew/2.7.html#optimizations

-- 
Alejandro Santos
http://www.alejolp.com.ar



More information about the pyar mailing list