Esercizio virgola mobile
aiuto devo convertire in virgola mobile le seguenti stringhe esadecimali:
83500000h
01500000h
grazie!!!
83500000h
01500000h
grazie!!!
Risposte
ciao,
li devi rappresentare in binario in virgola mobile?? Allora se li vuoi con eccesso di 127 e in forma normalizzata, mi vengono i seguenti risultati sperano siano giusti i conti:
intato traduci i due numeri in binario:
1) 10000011010100000000000000000000
2) 1010100000000000000000000
ora normalizziamoli:
$1) 1,0000011010100000000000000000000*2^(31)$
$2) 1,010100000000000000000000*2^(24)$
Essendo positivi il bit di segno sarà 0, quindi i due numeri in fomra normalizzata con esponenete ad eccesso 127 saranno:
$1) 0|10011110|0000011010100000000000000000000$
$2)0|10010111|010100000000000000000000$
dove i vari spazi indicano rispettivamente segno, esponenete e mantissa
li devi rappresentare in binario in virgola mobile?? Allora se li vuoi con eccesso di 127 e in forma normalizzata, mi vengono i seguenti risultati sperano siano giusti i conti:
intato traduci i due numeri in binario:
1) 10000011010100000000000000000000
2) 1010100000000000000000000
ora normalizziamoli:
$1) 1,0000011010100000000000000000000*2^(31)$
$2) 1,010100000000000000000000*2^(24)$
Essendo positivi il bit di segno sarà 0, quindi i due numeri in fomra normalizzata con esponenete ad eccesso 127 saranno:
$1) 0|10011110|0000011010100000000000000000000$
$2)0|10010111|010100000000000000000000$
dove i vari spazi indicano rispettivamente segno, esponenete e mantissa
ciao,grazie di avermi risposto purtroppo la soluzione nn risulta corretta,il formato è cmq a 32 bit S=1 mantissa 23 e 8 di esponente
il primo è un numero negativo:
S:1 esponente: 00000110 mantissa: 1010000000000000000000
ti trovi?un salutone
il primo è un numero negativo:
S:1 esponente: 00000110 mantissa: 1010000000000000000000
ti trovi?un salutone

ma è a eccesso qualcosa??
Non mi trovo ufffffffff, anche se complemento a 2 il primo mi viene tutt un'altra cosa
Credo che $83500000_16$ sia già la rappresentazione in virgola mobile di qualcosa e, pertanto,
$83500000_16=1|00000110|10100000000000000000000|_2$
che, in effetti, corrisponde alla soluzione indicata.
$83500000_16=1|00000110|10100000000000000000000|_2$
che, in effetti, corrisponde alla soluzione indicata.

aaaaaaaahhhhhhhhhh, ora ho capito, bastava comvertire in binario, non avevo notato, pensavo fosse da fare tutto il procedimento grazie

ah sono contento che voi avete capito....l'unico a non aver capito sono io
aiuto!!!
allora per convertire dalla base 16 a quella binaria devo prendere ongni lettera/numero in 4 bit quindi
8=1000
3=11
5=101
e poi ho gli zeri, adesso cosa faccio?come faccio a trovarmi con la soluzione?grazie

allora per convertire dalla base 16 a quella binaria devo prendere ongni lettera/numero in 4 bit quindi
8=1000
3=11
5=101
e poi ho gli zeri, adesso cosa faccio?come faccio a trovarmi con la soluzione?grazie
"gibbs helmoltz":
ah sono contento che voi avete capito....l'unico a non aver capito sono ioaiuto!!!
allora per convertire dalla base 16 a quella binaria devo prendere ongni lettera/numero in 4 bit quindi
8=1000
3=11
5=101
e poi ho gli zeri, adesso cosa faccio?come faccio a trovarmi con la soluzione?grazie
si, perchè un cifra in base 16 corrisponde a 4 in base 2 $16=2^4$
quando scrivi 3=11
meglio dire 3=0011
si ma nn ho capito che ottengo il risultato
spiegate passo passo per piacere? grazie!

basta tradurlo in binario e ottieni il numero della tua soluzione
la cosa che non capisco è perchè il primo sia negativo, iniziando con 0

la cosa che non capisco è perchè il primo sia negativo, iniziando con 0
8350h= 1000|0011|0101|0000|
0000h= 0000|0000|0000|0000|
quindi 83500000h esce: 1000|0011|0101|0000|0000|0000|0000|0000| si vede che è un numero negativo perchè il bit piu significativo è un 1 e ora cosa si fa?
0000h= 0000|0000|0000|0000|
quindi 83500000h esce: 1000|0011|0101|0000|0000|0000|0000|0000| si vede che è un numero negativo perchè il bit piu significativo è un 1 e ora cosa si fa?
vero sono proprio fuori, non so perchè ma prendevo un altro 0 davanti 
ce l'hai davanti agli occhi
basta dividere i bit in gruppi di 1,8 e 23

ce l'hai davanti agli occhi

oddio nn capisco in che senso? io devo avere un bit per il segno 8 per l'esponente e 23 per la mantissa...
si tu hai scritto sta cosa:
1000|0011|0101|0000|0000|0000|0000|0000|
raggruppa gli stessi bit in modo diverso:
1|00000110|10100000000000000000000
che è il risultato...Più che un esercizio di virgola mobile è di conversione
1000|0011|0101|0000|0000|0000|0000|0000|
raggruppa gli stessi bit in modo diverso:
1|00000110|10100000000000000000000
che è il risultato...Più che un esercizio di virgola mobile è di conversione

e quindi la stringa esadecimale era già sistemata in virgola mobile!
però nn capisco una cosa: se io avessi la stringa ACh e la voglio convertire in virgola mobile, il codice binario è :
1010|1100
sposto la virgola a destra di 8 posizioni e avrò :
S=0 E=00001000 e M=1010110000000000000 giusto?
invece nel caso precedente mio non ho fallo l'operazione di spostamento della virgola perchè il codice esadecimale era già sistemato in virgola mobile giusto?
grazie!
però nn capisco una cosa: se io avessi la stringa ACh e la voglio convertire in virgola mobile, il codice binario è :
1010|1100
sposto la virgola a destra di 8 posizioni e avrò :
S=0 E=00001000 e M=1010110000000000000 giusto?
invece nel caso precedente mio non ho fallo l'operazione di spostamento della virgola perchè il codice esadecimale era già sistemato in virgola mobile giusto?
grazie!
allora secondo lo standard i numeri in virgola mobile vengono rappresentati in forma normalizzata, ovvero 1,....
quindi se te avresti il numero 10101100 dovresti spostare la virgola non di 8 ma di 7 posizioni. Si metti che sia positivo (in decimale 172):
$1,0101100*2^7$
Nell'esponenete dovrai scrivere il numero dell'esponente in binario eccesso 127, ovvero 7+127 che in binario fa:10000110. Nel campo mantissa si mette tutta la parte dopo la virgola, quindi:
$0|10000110|0101100..00$
quindi se te avresti il numero 10101100 dovresti spostare la virgola non di 8 ma di 7 posizioni. Si metti che sia positivo (in decimale 172):
$1,0101100*2^7$
Nell'esponenete dovrai scrivere il numero dell'esponente in binario eccesso 127, ovvero 7+127 che in binario fa:10000110. Nel campo mantissa si mette tutta la parte dopo la virgola, quindi:
$0|10000110|0101100..00$
quello di cui parli è lo standard IEEE 754 a singola precisione, io lo avevo fatto nell'altro modo cmq.. ok
invece tornando all esercizio prima ho queste due stringe:
1|00000110|10100000000000000000000
0|00000010|10100000000000000000000
devo calcolarne il prodotto e poi riconvertilo a stringa,come fare? GRAZIE 1000 PER L'AIUTO
invece tornando all esercizio prima ho queste due stringe:
1|00000110|10100000000000000000000
0|00000010|10100000000000000000000
devo calcolarne il prodotto e poi riconvertilo a stringa,come fare? GRAZIE 1000 PER L'AIUTO
il secondo numero non è:
1|01010000|00000000000000000000000
ma sti numeri come sono rappresentati in eccesso 127??
1|01010000|00000000000000000000000
ma sti numeri come sono rappresentati in eccesso 127??
no.
e come è espresso l'espoenete??senza eccesso normalmente???
$(1500000)_H=(1010100000000000000000000)_2$
$(1500000)_H=(1010100000000000000000000)_2$
è sbagliato il codice asp:
015000000
così è
015000000
così è
