La moltiplicazione non firmata e firmata (complemento a due) può essere eseguita sullo stesso hardware? [chiuso]

0

So che possono essere addizionati e sottratti, ma non sono sicuro di poterli moltiplicare.

    
posta user284416 27.09.2017 - 17:32
fonte

2 risposte

4

Per quanto riguarda l'hardware, la moltiplicazione non firmata e la moltiplicazione con segno sono esattamente gli stessi (ignorando i flag). Quando moltiplichi 11111111 e 11111111 , il risultato è 00000001 , indipendentemente dal fatto che gli input siano considerati come -1 o 255.

Detto questo, non so se le due operazioni avrebbero un effetto diverso sui flag di carry e overflow e su come si gestirà la differenza in caso affermativo.

    
risposta data 27.09.2017 - 22:37
fonte
0

Can unsigned and signed (two's complement) multiplication be performed on the same hardware?

Assumi una larghezza di bit N .

Il trucco è che l'hardware può fare una firma N+1 * N+1 di moltiplicazione ampia, riutilizzando quindi la maggior parte dell'hardware quando si fa non firmata * non firmata , firmata * firmata o moltiplicazione con segno misto.

Complemento a 2 N+1 gli operandi possono gestire l'intero intervallo di intN_t e uintN_t . Il prodotto finale 2 2*N + 1 può semplicemente salvare i bit desiderati in una destinazione 2*N .

    
risposta data 27.09.2017 - 20:45
fonte

Leggi altre domande sui tag