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

1.336 Comentários

  1. Слушайте кто знает Брат снова сорвался Жена в истерике Таблетки не помогают Короче, единственный кто реально помог — выезд нарколога на дом качественно Приехал через 40 минут В общем, вся инфа по ссылке — вызов нарколога на дом телефон https://alkogolizm.narkolog-na-dom-nizhnij-novgorod-2.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации

  2. milwausaee casino, sweet bonausaa online slot and online casino canada, or new no deposit free
    spins uk 2021

    Here is my homepage :: games through which
    we can earn money in india (Jame)

  3. най-добри бонуси за залагания

    My homepage: плащат ли се данъци за залози
    (Hassan)

  4. $5 deposit pokies australia, united statesn roulette best odds and casino uk age limit,
    or new how to win every time at casino, Aracely, sites
    uk no deposit

Deixe um comentário

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