5 / 24 · Concetto
Bit e unità della virgola fissa
Moltiplica 0.5 e −1.25 con F=4, poi aggiungi bias 0.25 con F=8. Quali sono codice dell'accumulatore e valore reale?
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Associa un'unità all'intero
La virgola fissa rappresenta un valore reale mediante un codice intero e una scala fissa. Specifichiamo otto bit totali, memoria con segno in complemento a due e quattro bit frazionari, F=4. Un codice q rappresenta q×2⁻⁴. Le convenzioni dei formati Q possono differire sul fatto che il segno conti come bit intero, quindi scrivi esplicitamente larghezza totale, interpretazione con segno e F. I codici da −128 a 127 rappresentano da −8 a 7.9375.
La stessa configurazione di bit cambia significato con la scala. Il codice 24 rappresenta 1.5 con F=4 ma tre con F=3. Sommare codici con unità diverse è errato anche con un sommatore largo. Allinea prima le scale e definisci eventuali arrotondamenti e overflow introdotti dall'allineamento.
Esempio svolto
Codifica 1.5 come 24 e −0.75 come −12. Il prodotto intero è −288. Le larghezze frazionarie si sommano, quindi il prodotto ha F=8 e rappresenta −288/256=−1.125. Il prodotto completo di due operandi con segno a otto bit rientra in sedici bit, ma una somma di molti prodotti richiede un calcolo separato della larghezza dell'accumulatore. Arrotondare ogni prodotto a F=4 introduce un errore a ogni termine. Il nostro contratto conserva la scala del prodotto durante l'accumulo e arrotonda una sola volta all'uscita.
Un bias reale di 0.5 diventa codice 128 con F=8. Aggiungerlo dà −160, che rappresenta −0.625. Aggiungere il codice otto, cioè il bias con F=4, userebbe l'unità sbagliata. Documenta la scala del bias insieme al codice memorizzato.
Quando ampli un codice negativo in complemento a due, replica il bit di segno. La rappresentazione a otto bit di −12 è 11110100; la sua estensione a sedici bit è 1111111111110100. L'estensione con zeri la cambia nel positivo 244. Dichiara operandi RTL e valori intermedi con segno e rendi esplicite le loro larghezze anziché presumere che una destinazione stretta corregga il dimensionamento dell'espressione.
Scale pari a potenze di due rendono facile esaminare la relazione con gli scorrimenti. La quantizzazione affine generale usa altre scale positive e un punto zero. Mantieni insieme codice, scala e valore rappresentato nelle note di progetto affinché moltiplicazione, accumulo e conversione finale rimangano comprensibili.
Prova tu
Moltiplica 0.5 e −1.25 con F=4, poi aggiungi bias 0.25 con F=8. Quali sono codice dell'accumulatore e valore reale?
Leggi la spiegazione
I codici sono otto e −20, dando prodotto −160. Il codice del bias è 64. L'accumulatore −96 con F=8 rappresenta −0.375.