Titlul: adunare in binar Scris de: Dragu Mircea din Iunie 03, 2012, 10:23:18 Salut.
Am de rezolvat o problema si anume adunarea a doua numere in binar. Algoritmul pe care l-am facut functioneaza pentru unele numere pentru altele nu. Sa se realizeze programul de adunare a doua numere in binar. #include<stdio.h> #include<string.h> void citire_binar(int a[], int nr) { int i, t; char sir[33]; printf("\n Dati numarul in binar : "); gets(sir); nr=strlen(sir); for(i=0; i<nr; i++) { a[nr-i-1]=sir-'0'; t=a[nr-i-1]; } for(i=nr; i<33; i++) a=0; } void adunare_binar(int a[], int b[], int c[]) { int i, j, t=0; for(i=0; i<32; i++) { c=(t+=a+b)%2; t/=2; } } int main() { int i, k, nr_a=0, nr_b=0, a[32], b[32], c[32]; citire_binar(a, nr_a); citire_binar(b, nr_b); adunare_binar(a, b, c); printf("\n"); for(i=31; i>=0; i--) printf(" %d", c); printf("\n"); } Titlul: Răspuns: adunare in binar Scris de: Simoiu Robert din Iunie 03, 2012, 10:35:19 Ai in acest (http://infoarena.ro/multe-smenuri-de-programare-in-cc-si-nu-numai) articol mai jos numere mari, in baza 10. Poti implementa suma a doua numere mari, doar ca ele sunt in baza 2, si nu baza 10. Numarul trebuie citit in felul urmator : in A[0] ai numarul de cifre, iar de la A[1] in colo o sa ai numarul cititi in ordine inversa. Spre exemplu, numarul 12345 o sa-l ai asa : A[0] = 5 (nr. cifre), A[1] = 5, A[2] = 4 .... A[5] = 1 [asa orientativ, am vazut ca si tu ai facut cam acelasi lucru].
Cod: void add(int A[], int B[]) { Cod: void afis (int A[]) { |