convertir de binario a decimal

Medardo Rodriguez (Merchise Group) med.swl en gmail.com
Lun Dic 22 18:24:31 CET 2008


2008/12/22  <inf200468 en ucf.edu.cu>:
> Hola, sigo haciendo un algoritmo para hacer un and entre una direcc ip y la mascara de
> red , para obtener la direcc de red, ya tengo hecha una funcion que convierte de decimal
> a binario, pero no me queda claro como implementar una funcion que convierta de binario
> a decimal, y no se como hacer un and logico entre numeros binarios y obtener el
> resultado , ejemplo 1001 and 0011
> si pudieran ayudarme.


La verdad es que no entiendo bien algunas cosas de las que expresas.
Si tienes el IP y la máscara en sendas cadenas, y quieres obtener una
cadena como resultado haciendo un AND con cada componente de ambas. Tu
problema se resolvería de la siguiente forma:
<code>
#!/usr/bin/env python

from operator import __and__ as bin_and

ip_parts = lambda ip: [int(part) for part in ip.split('.')]

bin_addr = lambda ip, mask: map(bin_and, ip_parts(ip), ip_parts(mask))

str_addr = lambda ip, mask: '.'.join(str(p) for p in bin_addr(ip, mask))

print str_addr('200.123.2.1', '255.255.255.128')
</code>

Saludos
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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