Ir ao conteúdo

Mudança de base numérica com Python.

Boa noite,

Algum tempo já venho pensando em mudar o método utilizado pelo Little URL, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número único no banco de dados. (Chave primária). Hoje uma amiga perguntou como ela faria um programa para mudar a base de um número manualmente, aproveitei que ela me lembrou disso e resolvi fazer.

[code lang=”python”]
def convert(decimal,newBase,str,letters):
if decimal >= newBase:
x = decimal % newBase
y = decimal / newBase
str = letters[x] + str
if y < newBase: str = letters[y] + str return convert(y,newBase,str,letters) else: if len(str) == 0: str = letters[decimal] + str return str let = "0123456789ABCDEF" print convert(17,16,"",let) [/code] A váriavel let, são os valores utilizados na criação da base. Por exemplo ao se utilizar uma base binária, os valores deveriam ser 01 e assim consecutivamente. Espero que goste, Matheus

Publicado emAprendendopython

203 Comentários

  1. Hi there, i read your blog from time to time and i own a similar one and i was just curious if you get a
    lot of spam responses? If so how do you stop it, any plugin or anything you can advise?

    I get so much lately it’s driving me mad so any assistance is very much appreciated.

    Also visit my web site … gun Lake casino deals

  2. Hey I know this is off topic but I was wondering if you knew of any
    widgets I could add to my blog that automatically tweet
    my newest twitter updates. I’ve been looking for a plug-in like this for quite some
    time and was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new
    updates.

    Feel free to surf to my web-site: blackjack at casino morongo (Ellie)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *