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