associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "ConversordeBases"

Diferenças entre as versões de 1 e 2
Revisão 1e 2006-08-19 20:14:16
Tamanho: 1802
Comentário:
Revisão 2e 2006-08-19 20:16:11
Tamanho: 1832
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 47: Linha 47:


por AlexandreKlostermann

São duas funções simples para conversão de números inteiros de qualuqer base para qualquer base.

1- any2dec(any,base) - Esta função converte qualquer número da base 2 a 36 para qualquer base. Onde any é o número a ser convertido, e base é o valor de sua base (de 2 a 36 só considerando inteiros).

2- dec2any(dec,base) = Esta função converte qualquer número decimal para qualquer base de 2 a 36. Onde dec é o número decimal a ser convertido, e base é a base para qual se deseja converter o número (de 2 a 36 só considerando inteiros.)

OBS: tanto any quanto dec podem ser passados a função como string, ou inteiros, porém base deve ser sempre um inteiro.

OBS2:: Ambas as funções retornam sempre strings.

Código

   1 import string
   2 
   3 def any2dec(any,base):
   4     any = str(any)
   5     dic = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
   6     x = 0
   7     dec = 0
   8     any_temp = list(any)
   9     any_temp.reverse()
  10     for i in any_temp:
  11         dec = dec + ( (dic.index(i)) * (base**(x)))
  12         x = x+1
  13     return str(dec)
  14 
  15 
  16 def dec2any(dec,base):
  17     dec = int(dec)
  18     dic = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
  19     any_temp = []
  20     any = ''
  21     while True:
  22         temp_any = dec%base
  23         any_temp.append(temp_any)
  24         if  ((int(dec/base)) == 0):
  25             break
  26         dec = int(dec/base)
  27     any_temp.reverse()
  28     for i in any_temp:
  29         any = any + (dic[i])      
  30     return any

por AlexandreKlostermann