[Python-es] Classe para tratamiento de bits

Xin xinxic en gmail.com
Mar Ago 28 16:25:39 CEST 2007


Gràcias, le hecharé una ojeada, sobre todo en la comprovación de tipos.
Lo de guardar la cadena no me convence, pués normalmente trabajaré con
ficheros y usaré notación hexagessimal.

stream = '0x' + ''.join(["%02X" % byte for byte in 
file('fichero.bin','rb')])
b = Bits(stream,base=16)


Xin

El 28/08/2007, a les 15:59, en/na Chema Cortes va escriure:

> El 2007/8/28, Xin <xinxic en gmail.com> escribió:
>
>> Hace poco tube la necesidad de trabajar con streams de bits de
>> diferentes tamaños y poder extraer diferentes valors de estos. Como no
>> he encontrado ningun tipo de mòdulo o classe me la he hecho yo mismo.
>>
>> La idea és poder trabajar con ello como si de un número de tratara. 
>> Así
>> que su funcionamiento és el siguiente:
>>
>> Quizàs faltaria alguna funcion más, però para mi ya tenia suficiente.
>> Y también seria mejor que no guardara todos los sub-valores.
>> Espero que os sirva. Este és el codigo.
>
> Creo que está perfecto. Lo único que haría yo sería guardar la cadena
> con los bits en lugar de los subvalores. Así mismo, me apoyaría en el
> rebanado (slice) que tienen las cadenas para implementar el
> __getitem__. En otro orden de cosas, para chequear tipos es más
> conveniente hacerlo con la función isinstance(<objeto>,<tipo>) para
> evitarse sorpresas (por ejemplo, tu programa falla si usaras una
> instancia Bits() como índice en el __getitem__).
>
> class Bits(long):
>   ...
>   def __init__(self,value,start=None,end=None,base=10):
>         self.value=value
>         self.base=base
>   ...
>
>   def __getitem__(self,key):
>     return Bits(self.value[key],base=self.base)
>
> Faltan las comprobaciones que tenías.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




Más información sobre la lista de distribución Python-es