Somma bit a bit tra numeri sul calcolatore?

Umbreon93
Es : 8+ 4 . Voglio ottenere 12 .
Uso un calcolatore e quindi devo scrivere un codice.La somma la voglio fare bit a bit quindi devo utilizzare gli operatori logici (&,| etc..).

So che con un algoritmo che utilizzi le tavole di verità degli operatori logici posso ottenere qualsiasi operazione che voglio . In particolare mi interessa la somma ma se avete tempo vorrei anche la sottrazione,divisione ,moltiplicazione e il modulo . Grazie!!

Risposte
el_brando
Se ho ben capito, un algoritmo potrebbe essere questo:

Input:  a,b numeri naturali

somma = a XOR b;
riporto = a AND b;
mentre riporto è diverso da 0
    esegui uno shift a sinistra su riporto;
    a = somma;
    b = riporto;
    somma = a XOR b;
    riporto = a AND b;
fine ciclo

Output:  somma

Dove XOR e AND sono operatori bit a bit.

apatriarca
Ma quale dovrebbe essere lo scopo? Sono tutte operazioni già disponibili a livello hardware e i linguaggi di programmazione di alto livello sono incredibilmente scomodi da usare per definire generiche funzioni sui singoli bit come in questo caso. Oltretutto i cicli sono molto più di alto livello di una somma. Un po' più interessante sarebbe l'uso di un qualche linguaggio assembly (e ancora meglio qualcosa pensato per la progettazione di componenti hardware).

La maggior parte delle informazioni che si trovano in rete sono in realtà pensate per numeri grandi (e si assume spesso che sia disponibile una operazione di somma su blocchi più piccoli (anche di 32-64 bit)), oppure per una implementazione direttamente con porte logiche e quindi ad un livello più basso. Conosci qualcuno di questi algoritmi?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.