Mostra argomento precedente :: Mostra argomento successivo |
Autore |
Messaggio |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
Inviato: Ven 24 Mar, 2006 9:49 am Oggetto: [OT ma molto import] Fondamenti di Informatica I |
|
|
qualcuno sa come si convertono i numeri reali(esponente..mantissa..)?
a me interessa x una configurazione a 16bit..
per esempio..se io volessi convertire il n -38,478..come si fa?
mi serve capire con un esempio esplicativo tralasciando la teoria..
se poi avete o sapete dove posso reperire uno script o un eseguibile che me li calcoli..ne sarei grato..così posso esercitarmi e avere una "conferma"...
se poi avete una guida anche per gli alberi in c..
vi sbaciucchio tutti..
_________________ ENJORE.com - il primo software/social network per la gestione di tornei/campionati
Canon 5D - 17-40 f4 L - 50 f1.4 - 70-200 f4 L - Flash 580 II |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Nicola Giani utente attivo

Iscritto: 01 Feb 2006 Messaggi: 3677 Località: Milano
|
Inviato: Ven 24 Mar, 2006 10:03 am Oggetto: |
|
|
Non ho capito la prima domanda....
Gli alberi hanno un loro capitolo sul testo di Kerningham & Ritchie ("il linguaggio C"), dovresti trovarlo nella biblioteca universitaria...
Io ho i miei appunti di FI1, ma non so quando passerò da casa dei miei... Se nei prossimi giorni non trovi nulla, fammi sapere che ti spedisco le fotocopie (tieni presente che non sarà comunque una cosa rapidissima: dipende da quando ti servono)...
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Nicola Giani utente attivo

Iscritto: 01 Feb 2006 Messaggi: 3677 Località: Milano
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 24 Mar, 2006 10:57 am Oggetto: |
|
|
Per la conversione dei numeri ci sono io.
Dunque, ti serve la notazione mantissa + esponente, dagli appunti che ho trovato il prof. spiegò la cosa con 32 bit, quindi farò l'esempio su quella grandezza
Di 32 bit di cui disponi 24 sono riservati alla mantissa, e 8 all'esponente. Il primo bit della mantissa quando si sta facendo una convenzione detta floating point normalizzata è sempre 1, e a volte non viene proprio rappresentato; il primo bit dell'esponente invece determina il segno (0 segno meno, 1 segno più).
Passiamo all'esempio pratico, ovvero numero -38.478. Cominciamo a convertire i numeri prima della virgola, cioè 38: la prassi prevede che se vuoi fare la conversione "a manina" devi dividere per 2 ad oltranza, finché non ottieni un quoziente minore di 2, il resto e l'ultimo quoziente forma il numero binario, vediamo come.
Codice: |
38 : 2 = 19 (resto 0)
19: 2 = 9 (resto 1)
9 : 2 = 4 (resto 1)
4 : 2 = 2 (resto 0)
2 : 2 = 1 (resto 0 e ci fermiamo)
|
Il numero 38 in binario corrisponde a 100110 (devi leggere prima l'ultimo quoziente, poi tutti i resti dal basso verso l'alto). Per verificare apri la calcolatrice di Windows, metti la modalità scientifica, scrivi il numero e poi premi il bottone "bin"
Passiamo ora alla parte decimale, cioè 0.478. Per convertire usando carta e penna devi moltiplicare per 2 (base del sistema di arrivo). Prendi la parte frazionaria del risultato della moltiplicazione e la moltiplichi a sua volta per 2, alla fine ti fermi quando:
1. Il numero risultato della moltiplicazione è intero
2. Per quanto si vada avanti non si trova 0 e una parte frazionaria già trovata
3. Si trova una parte frazionaria già trovata (loop)
Il numero binario è l'unione di tutte le parti intere scartate. Mi spiego meglio con un esempio
Codice: | 0.478 x 2 = 0 + 0.956
0.956 x 2 = 1 + 0.912
0.912 x 2 = 1 + 0.824
0.824 x 2 = 1 + 0.648
0.648 x 2 = 1 + 0.296
0.296 x 2 = 0 + 0.592
0.592 x 2 = 1 + 0.184
0.184 x 2 = 0 + 0.368
0.368 x 2 = 0 + 0.736
0.736 x 2 = 1 + 0.472
0.472 x 2 = 0 + 0.944
0.944 x 2 = 1 + 0.888
mi fermo perché non trovo una parte frazionaria già uscita. |
Se volessimo ora rappresentare il numero -38.478 in virgola fissa uscirebbe:
-100110.11110100101 (eccetera se fossimo andati avanti nella conversione delle cifre dopo la virgola)
La notazione mantissa + esponente semplicemente ci impone di rappresentare in questo modo il numero:
Codice: | 1 100110 11110100101 000000 | 0 0000 110
x yyyyyy zzzzzzzzzzz wwwwww j kkkk hhh |
Dove:
x è il famoso numero 1 obbligatorio (che si può pure omettere risparmiando spazio)
y è la parte "intera"
z è la parte "decimale" (anche se ora non possiamo più parlare di parte intera e decimale in effetti)
w sono gli zeri che rimangono nei 24 bit
j è il segno meno
k sono gli zeri che rimangono nello spazio riservato all'esponente (8 bit)
h è il numero 6, l'esponente
In pratica stiamo scrivendo in binario il numero:
-0.10011011110100101 * 10^(6)
Spero di averti aiutato e soprattutto di non aver commesso errori...
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 24 Mar, 2006 11:07 am Oggetto: |
|
|
Scusa, una domanda da pseudo/collega (immagino): ma il libro di testo non ce l'hai??? Di solito i libri di informatica sono molto chiari e semplici
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
Inviato: Ven 24 Mar, 2006 3:13 pm Oggetto: |
|
|
gerarcone ha scritto: | Scusa, una domanda da pseudo/collega (immagino): ma il libro di testo non ce l'hai??? Di solito i libri di informatica sono molto chiari e semplici |
mi avevano consigliato un libro:
informatica arte e mestiere..
ma la trattazione dei numeri interi è veramente molto scarsa..x nn dire nulla.
cmq per quanto riguarda le liste diciamo che le ho capite..
gli alberi 0 in quanto trattati molto male in una sole lezione dal mio prof...
nessuno mi sa fare una configurazione a 16bit?
gerarcone sei stato molto gentile..
ma io ho bisogno di una spiegazione a basso livello ma molto esplicativa..
cioé passo passo come si fa con un paio di esempi di numeri con la virgola..
poi ho visto che tu come numero finale mi hai dato:
-0.10011011110100101 * 10^(6)
ma io nn dovrei avere una cosa del genere?? :
(16 bit)
x yyyyyyy zzzzzzzz
x segno
y esponente
z mantissa..
_________________ ENJORE.com - il primo software/social network per la gestione di tornei/campionati
Canon 5D - 17-40 f4 L - 50 f1.4 - 70-200 f4 L - Flash 580 II |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 24 Mar, 2006 3:42 pm Oggetto: |
|
|
Niprova ha scritto: | mi avevano consigliato un libro:
informatica arte e mestiere..
ma la trattazione dei numeri interi è veramente molto scarsa..x nn dire nulla. |
Mah, io quando ho fatto Elementi di Informatica I studiavo su: "Fondamenti di Informatica I" di Fadini/Savy edito dalla Liguori.
cmq per quanto riguarda le liste diciamo che le ho capite..
gli alberi 0 in quanto trattati molto male in una sole lezione dal mio prof...
Niprova ha scritto: | nessuno mi sa fare una configurazione a 16bit? |
Secondo me non ha senso fare la configurazione a 16bit, quando la configurazione minima prevista dallo standard (almeno secondo il mio libro) è in 32 bit...
Niprova ha scritto: | gerarcone sei stato molto gentile..
ma io ho bisogno di una spiegazione a basso livello ma molto esplicativa..
cioé passo passo come si fa con un paio di esempi di numeri con la virgola.. |
Sinceramente non vedo come potevo andare più in basso... In tutti i sensi!!!
No dai, ti ho fatto gli esempi passo passo, qual'è il problema?
Niprova ha scritto: | poi ho visto che tu come numero finale mi hai dato:
-0.10011011110100101 * 10^(6)
ma io nn dovrei avere una cosa del genere?? :
(16 bit)
x yyyyyyy zzzzzzzz
x segno
y esponente
z mantissa.. |
Semplicemente: no. Ci sono diversi standard che ora mi sembra troppo barboso elencare, standard diretto, standard inverso... A seconda di come viene rappresentata la mantissa e l'esponente all'interno dei 32 bit.
Ma il tuo esame per che laurea è? Io sono iscritto a Ingegneria Elettronica, probabilmente faccio la questione troppo complicata, magari il tuo prof. vuole un esempio molto semplice... La cosa migliore che ti conviene fare è chiedere proprio a lui secondo me.
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
Inviato: Ven 24 Mar, 2006 3:57 pm Oggetto: |
|
|
a lui è impossibile..
nn lo sa fare..
cmq negli esercizi richiede la configurazione a 16bit..e io nn mi trovo per nulla..
sinceramente nn ho capito cosa vuole..
fra qualche min ti invio una traccia d'esame così capisci..ok?
cmq ing delle telecomunicazioni...
_________________ ENJORE.com - il primo software/social network per la gestione di tornei/campionati
Canon 5D - 17-40 f4 L - 50 f1.4 - 70-200 f4 L - Flash 580 II |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 24 Mar, 2006 4:59 pm Oggetto: |
|
|
Ora ho capito, si tratta di argomenti che ho trattato nell'esame "Calcolatori Elettronici I" e che ora - lo ammetto - ho in parte dimenticato
Purtroppo non so se ho il tempo di spulciare di nuovo tra i libri ma nel frattempo ti spiego il procedimento che devi adottare, magari la cosa ti può aiutare.
Primo esercizio
La prima cosa da fare è rappresentare il numero -19,540 secondo la notazione che ti viene data. Allora metti "0" per il segno, poi ti converti il numero 19 in binario (come ti ho spiegato prima), converti il numero 0,540 (vedi sempre il mio post precedente) unisci i due numeri binari e li metti dentro alla mantissa. Poiché il numero 19 in binario corrisponde a "10011" l'esponente dovrà essere elevato alla 5 (quindi 2^5 non 10^5 come ti ho scritto prima facendo un errore gravissimo). In pratica devi mettere il numero binario "101" (5 in decimale) nello spazio riservato all'esponente.
Fai poi la stessa cosa per il numero -1,954.
Converti entrambi i numeri in esadecimale (non mi ricordo come si fa), ma fai la somma in binario. Il risultato della somma in binario lo converti di nuovo in esadecimale. Alla fine in sé è un esercizio molto semplice, è solo incasinato il modo in cui viene posto il problema.
Secondo esercizio
Come certamente saprai, un carattere viene visto da un calcolatore come una stringa di 8 bit. Ecco perché in una parola di 16 bit ci vanno 2 caratteri, nel caso dell'esercizio le ultime due cifre (viste come caratteri, mi raccomando) della tua matricola. Ad esempio se le ultime due cifre sono "5" e "4", ti esce fuori questa parola:
0000010100000100
Guarda qui
A questo punto però devi leggere questi 16 bit non come successione di due caratteri, ma come un numero intero, e un numero float rappresentato in virgola mobile. In pratica è come se tu dicessi al calcolatore di andare a pescare due byte facenti parte di una stringa di caratteri e leggerli come int o float (se conosci questi tipi del c++). Potrei scriverti un veloce programmino in c++ che ti calcola tutti i numeri che vuoi, ma mi rompo le balle
Scherzi a parte, vedi che sono esercizi abbastanza semplici, se l'esame non incombe hai tutto il tempo per trovarti qualche collega/ricercatore/professore/tutor/libro/sitointernet che ti possa aiutare.
Mi dispiace aver fatto così poco, ma la mia memoria è incasinata come non mai!
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Syd utente

Iscritto: 13 Gen 2006 Messaggi: 111 Località: Afragola (NA)
|
Inviato: Ven 24 Mar, 2006 5:10 pm Oggetto: |
|
|
gerarcone ha scritto: | Mah, io quando ho fatto Elementi di Informatica I studiavo su: "Fondamenti di Informatica I" di Fadini/Savy edito dalla Liguori. |
Gran bel libro e grandissimi prof!
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Izutsu utente attivo

Iscritto: 28 Dic 2003 Messaggi: 9922
|
Inviato: Ven 24 Mar, 2006 6:14 pm Oggetto: |
|
|
Quanto torno a casa vedo di rispolverare il libro, mi ricordo che all'epoca avevo capito tutto, è abbastanza semplice... non studio l'argomento da anni però e facendo tutt'altro nella vita...
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Niprova utente attivo

Iscritto: 25 Dic 2004 Messaggi: 1007 Località: Bari pr
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
|