Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<math.h>
- #define MAX 32
- void upisNizaA(int a[MAX], int na)
- {
- int br = 0;
- for (int i = MAX-na; i<MAX; i++)
- {
- scanf("%d", &a[i]);
- br++;
- if (a[i]>1 || a[i]<0)
- {
- printf("Greska pri unosu\n");
- printf("Unesite ponovo binarni niz od '0' i '1'\n");
- upisNizaA(a, na - (na - br));
- }
- }
- }
- void upisNizaB(int b[MAX], int nb)
- {
- {
- int br = 0;
- for (int i = MAX-nb; i<MAX; i++)
- {
- scanf("%d", &b[i]);
- br++;
- if (b[i]>1 || b[i]<0)
- {
- printf("Greska pri unosu\n");
- printf("Unesite ponovo binarni niz od '0' i '1'\n");
- upisNizaB(b, nb - (nb - br));
- }
- }
- }
- }
- main()
- {
- int a[MAX]={ 0 }; int b[MAX] = { 0 }; int c[MAX] = { 0 };
- int na, nb, prenos, i, duzina=MAX-1,predstava=0;
- printf("Unesite duzinu binarnog broja A: ");
- scanf("%d", &na);
- printf("\nUnesite binarni broj A\n\n");
- upisNizaA(a, na);
- printf("\nUnesite duzinu binarnog broja B: ");
- scanf("%d", &nb);
- printf("\nUnesite binarni broj B\n\n");
- upisNizaB(b, nb);
- for (prenos = 0, i = MAX-1; i >= 0; i--)
- {
- c[i] = a[i] + b[i] + prenos;
- switch (c[i])
- {
- default: prenos = 0; break;
- case 2: c[i] = 0; prenos = 1; break;
- case 3: c[i] = 1; prenos = 1; break;
- }
- }
- if (c[0] == 1)
- {
- c[i] ^= 1;
- for (i = 0, duzina; duzina > 0; duzina--, i++)
- predstava = predstava + (c[duzina] * pow(2, i));
- printf("\nPredstava zbira niza 'A' i 'B' je: -%d\n\n", predstava);
- }
- else
- {
- for (i = 0, duzina; duzina >= 0; duzina--, i++)
- predstava = predstava + (c[duzina] * pow(2, i));
- printf("\nPredstava zbira niza 'A' i 'B' je: %d\n\n", predstava);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement