+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

[C/C++] Sottrazione binaria

  1. #1
    programC__ non  in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    ...raga questo programma non vuole funzionare... qualcuno puo darmi una mano e darmi un p di spiegazioni su questo algoritmo della sottrazione binaria...e magari aiutarmi a trovare l'errore...dato che alcuni numeri li somma, altri lisottrae...AIUTATEMI....

    #include <stdio.h>
    int sott_binaria (int op1,int op2);
    void main ()
    {
    	int val_1,val_2,ris_sott;
    	printf ("inserisci il primo valore\n");
    	scanf("%d",&val_1);
    	printf ("inserisci il secondo valore\n");
    	scanf ("%d",&val_2);
    	ris_sott = sott_binaria(val_1,val_2);
    	printf ("il risultato e'%d\n",ris_sott);
    }
    
    //funzione sottrazione binaria
    int sott_binaria (int op1,int op2)
    {
    	int prestito, sottrazione;
    	prestito = 1; //inizilizzazione che serve per avviare il ciclo while
    	if (op1>op2)
    		while (prestito >= 1 )
    		{
    			sottrazione = op1^op2;
    			prestito &= (~op1,op2);
    			prestito = prestito << 1; //aggiunge un bit meno significativo 0
    			op1=sottrazione;
    			op2=prestito;
    		}
    		return sottrazione;
    }
    
    Ultima modifica di bottomap; 11-06-2007 20:32 

  2. #2
    cris non  in linea Novello
    Post
    3
    Like Inviati  
    0
    Like Ricevuti  
    0
    puoi fare un esempio con dati da inserire e quale risultato ti aspetti?

    Ciao

  3. #3
    programC__ non  in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da cris
    puoi fare un esempio con dati da inserire e quale risultato ti aspetti?

    Ciao
    es. inserisci il primo numero 8 poi inserisci il secondo numero da sottrarre 2, 8 - 2 = 6...purtroppo con questo programma che ho fatto io non va sempre cosi...capita che se scrivo 8 - 2 il risultato 10....e bisogna correggerlo....

  4. #4
    L'avatar di albertonissa
    albertonissa non  in linea Topo di biblioteca
    Post
    2,147
    Like Inviati  
    0
    Like Ricevuti  
    0
    credo proprio l'errore nasca dal fatto che parti con resto = 1...

  5. #5
    programC__ non  in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da albertonissa
    credo proprio l'errore nasca dal fatto che parti con resto = 1...

    il resto dovrebbe essere -1?...ma se metto -1 non funziona...non so cosa modificare...

  6. #6
    L'avatar di bottomap
    bottomap non  in linea Amanuense
    Post
    4,130
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao,
    Scusa tanto, ma con le espressioni sottrazione = op1^op2; e prestito &= (~op1,op2); cosa intendi fare effettivamente?

    La cosa decisamente curiosa...
    Nella prima espressione effettui uno xor per calcolare sottrazione (il ch piuttosto strano visto che quello che calcoli non la differenza dei due numeri... tra l'altro lo xor ignora il segno)
    Nella seconda fai un and tra prestito (che vale 1) ed il secondo dei due operandi (op2) per calcolare il nuovo prestito (altra stranezza).

    L'impressione che tu abbia proprio frainteso l'algoritmo (o utilizzato male gli operatori, binari e non, del C)... facci sapere

    Ciaociao
    ℹ️ Leggi di pi su bottomap ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Calcoli tra celle con Sottrazione
    Da DannyC nel forum Microsoft Excel
    Risposte: 7
    Ultimo Post: 24-04-2015, 18:19
  2. sottrazione binaria in javascript
    Da 0-MiNaTo- nel forum HTML, CSS e JavaScript
    Risposte: 1
    Ultimo Post: 10-03-2013, 16:27
  3. Problema con sottrazione importi.
    Da maximum nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 25-02-2009, 13:43
  4. sottrazione excel in vba
    Da oilcrovara nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 10-10-2008, 11:43
  5. Sottrazione pazze
    Da luky nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 30-11-2007, 16:01