Conversos de números a diversas bases

#!/usr/bin/python
# CODIGO CON DOS FUNCIONES. CONVIERTE NUMEROS A VARIAS BASES. INTRODUCES UN NUMERO Y LA BASE EN LA QUE LO QUIERES.

def digit_to_char(digit):
    if digit < 10: 
        return chr(ord('0') + digit)
    else: 
        return chr(ord('a') + digit - 10)

def str_base(number,base):
    if number < 0:
        return '-' + str_base(-number,base)
    else:
        (d,m) = divmod(number,base)
        if d:
            return str_base(d,base) + digit_to_char(m)
        else:
            return digit_to_char(m)

a = int(input("introduzca numero a convertir a cualquier base: "))
b = int(input("introduzca base: "))
print str_base(a,b)


Veamos un ejemplo sencillo.

Vamos a convertir el número 145 a base 3 y después a base 2.

Introduzca numero a convertir a cualquier base: 145
Introduzca base: 3

12101

Introduzca numero a convertir a cualquier base: 145
Introduzca base: 2

10010001

 

Convertir texto a ASCII y viceversa

#!/usr/bin/python
# CONVERTIMOS TEXTO A ASCII Y VICEVERSA. 
print
print "Este codigo convierte texto a codigo ASCII y viceversa."
print

a = raw_input("Introduce texto a convertir: ")

print "Texto en codigo ASCII:"
for i in range(0, len(a)):
    print ord(a[i]),             

# ESTE BLOQUE CONVIERTE ASCII A TEXTO
 
l = []        # LISTA VACIA DONDE ALMACENA EL RESULTADO
l = input("Introduce valores ascii separados por comas: ") 
print "ASCII a texto: ", ''.join(map(chr,l)) 

print 

Veamos un ejemplo muy sencillo.

Introduce texto a convertir: buenos dias

Texto en codigo ASCII:


98 117 101 110 111 115 32 100 105 97 115

Introduce valores ASCII separados por comas:

98,117,101,110,111,115,32,100,105,97,115

ASCII a texto: buenos dias