Sto lavorando con i numeri in basi diverse (base-10, base-8, base-16, ecc.). Sto cercando di contare il numero di caratteri in ciascun numero.Come contare il numero di cifre in numeri in basi diverse?
Esempio
numero:
ABCDEF
Numero di cifre:
So del metodo basato sulla logaritmi, ma sto affrontando alcuni problemi.
This Python script uscite che non è riuscito a calcolare il numero di cifre correttamente in 3.969 numeri su 1.000.000.
credo che il metodo che utilizza logaritmi potrebbe essere piuttosto lento
Links:
This C program deve essere molto lento (quello che se ho un grandissimo numero?). Inoltre, non può gestire numeri in basi diverse (ad esempio, base 16).
Non una vittima di this quanto vi PO aveva chiesto solo di base-10
Edit: certamente posso calcolare la lunghezza di una stringa, ma quello che mi interessa di più, è se è possibile eseguire il calcolo senza convenzione nella stringa. Vorrei conoscere l'algoritmo che potrebbe aiutare a farlo conoscendo solo la base e la base da convertire in.
Edit2:fonte-base è base 10 e la base per convertire in può essere qualsiasi altra base.
Come è possibile calcolare il numero di cifre in numeri in diverse basi?
Se conosco il numero in base-10, come faccio a calcolare il numero di cifre nello stesso numero convertito in base-16 (base-8, ecc.) senza eseguire la conversione?
Nota: un po 'di codice Python o C sarà molto apprezzato
Solo un'idea prima di scrivere una risposta completa, se un metodo come quello ti soddisfa: trova la potenza n necessaria per avere ad esempio 16^n> tuo_numero> 16^n, perché allora il numero di cifre dovrebbe essere qualcosa come n ... –
Ci stai chiedendo come eseguire il debug del tuo script Python? – abarnert
@EmmanuelJay, penso che qualsiasi metodo che sia abbastanza veloce andrebbe bene. – ForceBru