A co ma w Twojej funkcji robić ten kod:
for(l = 0; l < 2; l++){
for(m = 0; m < 2; m++){
printf("%i", wynik[k]);
k++;
}
printf(" ");
}
Czego się po nim spodziewasz?
Zauważ, że w
wynik[l] = liczba1[l]&liczba2[l]; /* koniunkcja bitowa */
zmienne liczba1 i liczba2 są typu integer, więc tak naprawdę nie robisz w tej operacji koniunkcji bitowej, dla jednego bitu ale dla całego bajtu, którym jest liczba int w zmiennej liczba1[l].
Dla wartości 8 bitowych zamiast int w argumencie funkcji sprobuj użyć unsigned char i wtedy nie muszisz traktować tego jak tablicę (bo unsigned char jest 8 bitowy). Jedynie co to będziesz musiał poszukac w google (bo ja z pamięci Ci nie powiem) jak wyświetlić unsigned char jako 8 bitów (zero i jedynek).
Byłoby to coś w stylu:
unsigned char c1, c2, wynik_koniunkcji;
c1 = 100;
c2 = 200;
wynik_koniunkcji = c1 & c2;
Zmienna wynik_koniunkcji zawiera koniunkcje liczb w c1 i c2 (pamietaj, że to char wiec wartosci sa 8 bitowe).
Mam nadzieję, że się nie mylę ;-)