View Full Version : Trasformazioni di base con virgola
Ciao! Nuovo problema: come faccio a trasformare un numero da una base ad un'altra quando questo presenta la virgola??? (senza calcolatrice)
esempio pratico: 1231,16 da base 4 a base 16
con i num senza la virgola non ho problemi trasformo in base 10 e poi divido per la nuova base tenendo i resti. Ma con la virgola è un casino! Senza calcolatrice poi.. Aiuto..:mc:
Vi posso dare anche il risultato::doh: 6D,7
repne scasb
24-06-2007, 16:51
Potrei aver capito male, ma se e' in base 4 allora il numero permette i seguenti simboli: 0,1,2,3. Come fa 1231,16 ad essere in base 4? (c'e' un '6' di troppo, non e' che al posto del '6' hai un '3'?).
Potrei aver capito male, ma se e' in base 4 allora il numero permette i seguenti simboli: 0,1,2,3. Come fa 1231,16 ad essere in base 4? (c'e' un '6' di troppo, non e' che al posto del '6' hai un '3'?).
porca miseria ho sbagliato a copiare.. 1231,13 scusami :muro: . Sapresti aiutarmi quindi??
repne scasb
24-06-2007, 17:03
Certo: 1231,13 in base 4 = 1*4^0+3*4^1+2*4^2+1*4^3,3*4^0+1*4^1 = 109,7 in base decimale = 6D,7 in base esadecimale (devi trattare la parte frazionaria come un numero intero e convertirlo da base a base. Per esempio: 1,1133 in base 4 e' uguale a 1,5F in base esadecimale.
devi fare semplicemente come con i numeri interi, prosegui dopo la virgola assegnando ai numeri decimali le corrispondenti potenze della base ad esponente negativo:
1231,13 in base 4 = 1*4^3 + 2*4^2 + 3*4^1 + 1*4^0 + 1*4^(-1) + 3*4^(-2)
il metodo di repne scasb è sbagliato, infatti 1231,13 (b4) = 109,4375 (b10)
in questo caso funziona perché la base di arrivo è una potenza della base di partenza, ma è un caso.
devi fare semplicemente come con i numeri interi, prosegui dopo la virgola assegnando ai numeri decimali le corrispondenti potenze della base ad esponente negativo:
1231,13 in base 4 = 1*4^3 + 2*4^2 + 3*4^1 + 1*4^0 + 1*4^(-1) + 3*4^(-2)
il metodo di repne scasb è sbagliato, infatti 1231,13 (b4) = 109,4375 (b10)
in questo caso funziona perché la base di arrivo è una potenza della base di partenza, ma è un caso.
Ok e poi per la successiva conversione in base 16 come faccio? (senza calcolatrice)
Dovrebbe esserci una formula o un metodo per la conversione di basi l'una potenza dell'altra. Qualcuno ne è a conoscenza per caso?? :confused:
Dunque, se non ricordo male...
Per la parte intera pndi il numero decimale, lo dividi di volta in volta per la base e tieni il resto.
Per i decimali, fai il contrario.
Faccio un esempio che è più chiaro...
(12,27)dec --> BIN?
INTERI:
12/2 = 6 resto 0
6/2 = 3 resto 0
3/2 = 1 resto 1
1/2 = 0 resto 1
12 = 1100
DECIMALI:
0.27*2 = 0.54 tengo lo zero prima della virgola...
0.54*2 = 1.08 catturo l'1 prima della virgola e me lo metto da parte...
0.08*2 = 0.16 0
0.16*2 = 0.32 0
0.32*2 = 0.64 0
0.64*2 = 1.28 1
0.28*2 = 0.56 0
...e così via!
Ottengo: 1100,0100010...
E' macchinoso, ma funzona!
Per le altre basi, si fa circa lo stesso...
Esempio:
(12,27) --> Base 8??
12/8 = 1 resto 4
1/8 = 0 resto 1
0.27*8 = 2.16 2
0.18*8 = 1.28 1
0.28*8 = 2.24 2
ecc
14,212
Per i binari sono arcisicuro, per gli altri un po' meno, ma dovrebbero funzionare.
Per convertire al contrario, basta tenere presente che si stanno facendo moltiplicazioni e divisioni in base opportuna, quindi bisogna dimensionare in maniera corretta i resti ecc ecc...
Spero che possa aiutare!
Tiziano
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.