Numero di bit per rappresentare un intero relativo
Salve, vorrei sapere qual è il metodo per sapere quanti bit sono necessari per rappresentare un numero relativo. Mi viene chiesto in un esercizio. Quale ragionamento devo fare? Se non sbaglio esiste una formula (non quella con il logaritmo) che permette tramite un semplice calcolo di saperlo. Ad esempio mi viene richiesto quanti bit sono necessari per rappresentare il numero 245.985.075.585.530 e sul risultato dice che ce ne vogliono 49... Come ci è arrivato?
Risposte
un metodo oltre quello con i logaritmi non saprei proprio, al momento non mi viene in mente....
Posso solo dirti, che se un numero in base 10 (numero assoluto) ha T cifre, in base 2 devi aggiungere un bit per il segno per usare la definizione di numero relativo.
Posso solo dirti, che se un numero in base 10 (numero assoluto) ha T cifre, in base 2 devi aggiungere un bit per il segno per usare la definizione di numero relativo.
"Nepenthe":
quanti bit sono necessari per rappresentare il numero 245.985.075.585.530 e sul risultato dice che ce ne vogliono 49... Come ci è arrivato?
Ha usato il logaritmo.

Spesso però non serve la calcolatrice, ricordando che $log_10(x)$ è (circa) il numero delle cifre, e che il logaritmo decimale di due è (circa) $0.3$, nel caso hai quindici cifre:
$n~=15/0.3 ~=15*3.3 ~=49$
Quindi devo fare sempre il numero di cifre per 3.3 e arrotondare in eccesso il risultato?
Devi arrotondare all'intero più vicino. Se non usi i logaritmi (nel senso che non calcoli i valori precisi degli stessi), questa è una buona approssimazione, non un calcolo preciso.
Ah ecco si usano i logaritmi, altri metodi non penso ce ne siano....
solo per far capire il perchè di tale proprietà, con i conti che hai esposto te,
se il numero è a 15 cifre e sei in base 10, cioè:
$10^15 rArr log_10 (10^15) = 15*log_10 (10)$ essendo che vuoi sapere il numero di bit in base due $15*(log_10 (10))/(log_10 (2)) ~~ 15* 1/(0.3) = 15/0.3$
si usa la proprietà dei logaritmi e dell'esponenziale, e come dice bene Rggb è un'approssimazione, un limite superiore.
però Rggb non dovrebbero essere 50 i bit?
essendo che richiede "numero relativo" perciò numero assoluto più il bit di segno?
solo per far capire il perchè di tale proprietà, con i conti che hai esposto te,
se il numero è a 15 cifre e sei in base 10, cioè:
$10^15 rArr log_10 (10^15) = 15*log_10 (10)$ essendo che vuoi sapere il numero di bit in base due $15*(log_10 (10))/(log_10 (2)) ~~ 15* 1/(0.3) = 15/0.3$
si usa la proprietà dei logaritmi e dell'esponenziale, e come dice bene Rggb è un'approssimazione, un limite superiore.
però Rggb non dovrebbero essere 50 i bit?
essendo che richiede "numero relativo" perciò numero assoluto più il bit di segno?
Certo. Essendo una approssimazione, dovrebbe essere così e sbaglieremmo di una cifra, in realtà con il nostro $x$ dell'esempio
$(log(x))/(log(2))~=47,8$
quindi 48 cifre, più segno. Infatti
$245985075585530_d=110111111011100011011101000011001110000111111010_b$
$(log(x))/(log(2))~=47,8$
quindi 48 cifre, più segno. Infatti
$245985075585530_d=110111111011100011011101000011001110000111111010_b$
aaah non mi tornava qualcosa, 49 era già con segno.
perfetto, grazie dela precisazione
perfetto, grazie dela precisazione

Ma l'esercizio ti dice anche in che rappresentazione devi scriverlo?
Se non mi sbaglio però il risultato dovrebbe esse sempre 49 sia in modulo e segno sia in complemento a 2
Se non mi sbaglio però il risultato dovrebbe esse sempre 49 sia in modulo e segno sia in complemento a 2