[pyar] Manipulacion de Bits

Nicolás Rebagliati nicolas.rebagliati en aenima-x.com.ar
Jue Ene 23 17:23:56 ART 2014


Termine haciéndote caso

class Address(object):
    def __init__(self, buf):
        first_byte = ord(buf[0])
        second_byte = ord(buf[1])
        self.odd = first_byte >> 7
        self.nature_of_address = first_byte & 0x87
        self.number_incomplete = second_byte >> 7
        self.numbering_plan = (second_byte >> 4) & 0xf
        self.address_presentation = (second_byte >> 2) & 0x03
        self.screening_indicator = second_byte & 0x03


On Jan 23, 2014, at 4:35 PM, Roberto Alsina <ralsina en netmanagers.com.ar> wrote:

> On 23/01/14 16:24, Nicolás Rebagliati wrote:
>> Buenas, saben de algún modulo para manipular bits que sea rápido (BiteReader esta bueno, pero no es muy rapido), para no tener que usar bitwise operators que son una patada en los huevos con carrera.
>> 
>> Ejemplo de lo que necesito, teniendo este byte string: '\x03\x13’
>> necesito el 8vo bit del primer byte, el valor de los 7 bits restantes del primer byte, el 8 del 2do byte, del el valor del 7 al 5, el valor del 4 al 3 y el valor del 2 al 1.
>> Se entiende??
>> Ojo cuando digo:  el valor de los 7 bits restantes del primer byte. No me refiero a cada bit, sino al valor total en decimal de esos 7 bits.
>> 
>> 
> Este... usar aritmética?
> 
> Ese bytestring es 787
> 
> el 8vo bit del primer byte es (787&256)/256
> El 8vo del 2do byte es 787&1
> 
> No tengo idea de que quiere decir "[el] valor total en decimal de esos 7 bits. " o "el valor del 4 al 3", etc.
> 
> Por ejemplo, si lo que queres es el valor de los bits 4 y 5 desde la derecha (porque hay que ver como los contás ;-) es algo como 787&24 que te da 16 (o sea, el 5 es 1, el 4 es 0). Si lo que queres es el valor de esos dos bits solos, y que te de 2 es (787&24)/8
> 
> Disclaimer, esto esta hecho mas a ojo que otra cosa, y debe haber por lo menos un off-by-one ;-)
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



More information about the pyar mailing list