Numero di cifre in rappresentazione binaria

mauri54
Ciao a tutti,
Qualcuno potrebbe spiegarmi perché il $ log_2a $ è legato al numero di cifre con il quale $a$ viene espresso nel sistema binario?

Ad esempio: se volessi trovare il numero di cifre che servono per rappresentare in notazione binaria il numero $10^{25}$, dovrei andare a considerare $ n=[log_2 10^{25}] $ e prendere $n+1=83+1=84$. Allora il numero $10^{25}$ scritto in forma binaria presenta $84$ cifre.
Come mai si prende in considerazione il logaritmo in base 2? Il logaritmo "conta" il numero di cifre? Qual è il collegamento? scusate deve essere una domanda scema ma non mi viene in mente come mai si debba prendere in considerazione il logaritmo in base due del numero per contare il numero di cifre del numero stesso in base due.

Grazie!

Risposte
Quinzio
Ti voglio proporre un modo per convincersi che bisogna prendere il $log_2$ che spero sia abbastanza convincente, anche se non troppo formale.
Se ti faccio vedere un numero in base 10, ad es. $162 345$ e ti chiedo da quante cifre e' composto, tu dirai che e' semplice e che basta contarle. Perfetto.
Adesso ti mostro un numero binario, in base 2, ad es. $10011100$ e ti chiedo da quante cifre e' composto. Magari per un attimo rimani perplesso, ma poi ti convinci che no cambia nulla, e conti quante cifre ci sono.
Molto semplice quindi.
Il problema nasce quando ti mostro un numero in base 10, ad es. $10^{25}$ e ti chiedo da quante cifre binarie e' composto, o meglio ti chiedo quante cifre servono per rappresentare quel numero in binario.

Quindi dobbiamo trovare un modo "algoritmico" per estrarre il numero di cifre, a partire da un numero scritto in una base qualsiasi.
Se $n$ e' il numero di cui voglio sapere da quante cifre e' composto e $C$ e' il numero delle cifre, posso scrivere che:
$n \times 10^{-C} = k$, dove $0,1 < k < 1$.
Detto in parole: se prendo $n$ e lo moltiplico per $10^{-C}$ ottengo un numero compreso tra $0$ e $0,1$.

Un altro modo di vedere questa cosa e' che prendo un numero, ad es. $1254$, lo scrivo in notazione frazionaria, con la virgola, $1254,0$ e poi sposto la virgola a sinistra di $C$ posizioni. Quello che ottengo e' un numero $k$, con $0,1 < k < 1$ come prima.

Ora prendo il logaritmo (in base 10) di entrambi i lati dell'equazione.

$log_{10} (n \times 10^{-C}) = log_{10} k $.

e poi...

$log_{10} n + log_{10} 10^{-C} = log_{10} k $.

$log_{10} n + -C = -1 $.

$C = log_{10} n + 1 $.

Nota che ho approssimato il logaritmo, che e' compreso tra $0$ e $-1$, con $-1$. Questo perche' il numero di cifre e' un intero...

Ora cambiando la base, il ragionamento non cambia. ove c'e il $log_{10}$ ci sara' il $log_2$ o in qualsiasi altra base che tu scelga.
Ad es. il numero di cifre binarie e' $C = log_2 n + 1 $

La formula sopra, in base 2, diventa:
$n \times 2^{-C} = k$, dove $0,1 < k < 1$.

Come vedi al posto del $10$ c'e' un $2$, ma il ragionamento e' lo stesso, e poi segue tutto il resto.

axpgn
$342=3*10^2+4*10^1+2*10^0$

Tre cifre ovvero l'esponente del primo termine più uno


$71342=7*10^4+1*10^3+3*10^2+4*10^1+2*10^0$

Cinque cifre ovvero l'esponente del primo termine più uno.


Allora è sufficiente prendere l'esponente del primo termine e aggiungere uno cioè $log_10 10^n + 1$

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.