Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    Supponiamo io voglia fare la somma di due numeri 128+64.(base 10)..la traccia mi chiede di inserire direttamente le due stringhe di bit che rappresentano i rispettivi numeri in base 2, e io da tastiera inserisco 10000000(128in base 2) e 01000000(64 in base2),ovviamente le stringhe le passo al sottoporgrmma scrivendole da testiera al contrario (es.128..digito 00000001,così da permettere la somma dal bit meno signficiativo,fatta questa premessa,mi spiego come implementare delle funzioni somma e differenza(non devo preoccuparmi dell'overflow perchè non richiesto),ora a che serve la funzione complemento a due?Spero di essere stato un bit più chiaro
    )

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    Cioè a quanto leggo dalla traccia siccome la funzione complemento a due ha un solo argomento char ( s[]) significa che prende ogni stringa binaria inserita da tastiera e la converte in complemento a due,poi solo dopo aver convertito ogni stringa binaria in complemento a due intervengono nel main le altre due funzioni somma e differenza..secondo te...ho capito bene..purtroppo non ho la traccia..ho solo prototipi ..bella fregatura...
    Ultima modifica di SSSS90; 30-03-2014 a 18:07

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quanto vale N?

    P.S. Quando posti del codice devi usare i tag CODE! Te l'ho detto parecchie volte ... non si legge il codice bene !
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    scusami,,ma mi pareva di aver usat i tag code questa volta.....in ogni caso N il numero di bit che devo inserire da tastiera sn 8---ad esempio

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    Ti posto quello a cui sn giunto..spero di non confonderti le idee...speriamo con i famosi tag code...

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #define N 8
     int differenza(char s1[N], char s2[N], char s3[N]);
     int somma (char s1[N], char s2[N], char s3[N]);
     int complemento_a_2 (char s[N]);
     char somma_binaria (char a, char b, char c, char*r); 
    int main()
     {
     char s1[N];
     char s2[N];
     char s3[N];
     int overflow;
     int num,i,j,k;
    
     printf("Inserisci la prima sequenza di bit dalla cifra meno significativa\n");
     printf("s1: ");
     scanf("%s", s1);
      printf("Inserisci la seconda sequenza di bit dalla cifra meno significativa\n");
     printf("s2: ");
     scanf("%s", s2);
     num=somma(s1,s2,s3);
     for(i=0;i<N;i++)
     {
     printf("%c",s1[i]);
     }
     printf("+\n");
     for(j=0;j<N;j++)
     {
     printf("%c",s2[j]);
    
     }
     printf("=\n");
     for(k=0;k<N;k++)
     {
     printf("%c",s3[k]);
     }
    
    
    
     overflow=differenza(s1,s2,s3);
     il controllo dell'overflow non è richiesto dal compito.
     printf("s3: %s\n",s3);
     if(overflow)
     printf("Si è verificato un overflow.\n");*/
     system("PAUSE");
     return EXIT_SUCCESS;
     }
    
    int somma (char s1[N], char s2[N], char s3[N])
     { 
    
    
            int i,riporto;
    
            i=0;
            riporto=0;
            while((s1[i]!='\0')&& (s2[i]!='\0'))
            {
                 s3[i]=s1[i]+s2[i]+riporto;
                 if(s3[i]>=2)
                 {
                    riporto=1;
                    i++;
                 }
                 else
                    riporto=0;
                    i++;
            }
                  return i;
    
     }
    
     int differenza(char s1[N], char s2[N], char s3[N])
    Ultima modifica di SSSS90; 30-03-2014 a 18:51

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No guarda senza tag CODE non seguo il discorso ... non è difficile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    Cmq spulciando sui siti.ho letto che per convertire un numero da binario in complemento a due basta prendere la sequenza di bit invertire i bit e aggiungere 1,
    ad es_ il num 128 in binario e' 10000000 per convertirlo in complemento a due devo fare 01111111+00000001...queste operazioni sono quelle che dovrebbe eseguire la funzione complemento a due..sei daccordo?Se si secondo te esiste un altro metodo?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Un valore a 8 bit in C2 è compreso tra -128 e +127

    Il 128 non è un valore accettabile.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    giusto.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    prendiamo il numero 5 sempre con 8 bit,la sua rappresentazione in binario e' 00000101 ne faccio il complemento(inverto i bit...)11111010+00000001=1111011....secondo te questo è quello che devo cercare di fare con la funzione complemento a due che prende la stringa binaria di bit????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.