Come converti i bit in un altro alfabeto?
-
29-09-2020 - |
Domanda
Ho dimenticato come farlo.Come posso capire quali sono i requisiti per una stringa a 128 bit utilizzando un determinato alfabeto?
Vale a dire, voglio generare un valore uuid (128 bit), usando solo i 10 numeri per l'alfabeto.Quanti numeri ho bisogno, e qual è l'equazione generale, quindi posso capire questo per qualsiasi alfabeto di qualsiasi dimensione?
Qual è l'equazione per qualsiasi valore N-Bit con qualsiasi alfabeto X-Letter?
Il modo in cui lo faccio è indovinare e lentamente iteralmente finché non arrivo ad un numero ravvicinato.Per i poteri di 10 è facile:
Math.pow(2, 128)
3.402823669209385e+38
Math.pow(10, 39)
1e+39
.
Per altri numeri, ci vuole un po 'più di indovinare.Piacerebbe conoscere l'equazione per questo.
Soluzione
Per stimare il numero di cifre decimali necessarie per rappresentare una $ 128 $ Numero di bit Utilizzare logaritmi in base $ 10 $ :
$ 128 \ volte \ log_ {10} (2) \ circa 38,53 $
Quindi è necessario $ 39 $ cifre decimali per rappresentare una classe $ 128 $ Numero di bit.
In un generale, per un "alfabeto" con $ N $ simboli necessari per trovare il valore della $ 128 \Times \ log_n (2) $ e quindi arrotondare questo fino al prossimo numero intero.