PDA

View Full Version : Trasformazioni di base con virgola


piumone
24-06-2007, 15:52
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:

piumone
24-06-2007, 16:27
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'?).

piumone
24-06-2007, 16:55
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.

Furla
24-06-2007, 19:13
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.

piumone
25-06-2007, 00:30
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)

piumone
29-06-2007, 08:50
Dovrebbe esserci una formula o un metodo per la conversione di basi l'una potenza dell'altra. Qualcuno ne è a conoscenza per caso?? :confused:

tz86
29-06-2007, 10:02
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