Wątek przeniesiony 2022-12-22 20:12 z Inżynieria oprogramowania przez Riddle.

Konwertery operacji bitowych

0

siema
muszę zrobić coś takiego: Zadeklaruj dwie liczby całkowite dodatnie, ustaw im jakieś wartości.
Zrealizuj operację AND (ale bez AND) – wykorzystaj wyłącznie operator OR oraz NOT.
Wynik porównaj ze zwykłą operacją AND.
Zrealizuj operację OR (ale bez OR) – wykorzystaj wyłącznie operator AND oraz NOT.
Wynik porównaj ze zwykłą operacją OR.
Zrealizuj operację XOR (ale bez XOR) – wykorzystaj wyłącznie operator AND, OR oraz NOT.
Wynik porównaj ze zwykłą operacją XOR.

kombinuje jak to zrobić ale mi nie wychodzi, posłucham wszelkich rad!

1

Pierwsze sprawdź Prawa de morgana. Nie wiem jak to sie nazywa po polsku, ale po angielsku to co Cie interesuje to jest jest to substiturion form. Potem napisz kod, według Twoich kroków i ewentualnie poprawimy :)

0

ok mam 2 pierwsze,

printf("Wykorzystujac OR i NOT\n");
bin(~(~x | ~y));
printf("Wykorzystujac AND\n");
bin(x&y);
printf("Wykorzystujac AND i NOT\n");
bin(~(~x & ~y));
printf("Wykorzystujac OR\n");
bin(x|y);

3 operacja to już wyższy poziom :/

1

A cały kod, któy masz wraz z definicją funkcji głównej? :) Co robi dokładniej funkcja bin? :)

0
#include <stdio.h>

void  bin(int n)
{
    int i;
    for (i = 1 << 6; i > 0; i = i / 2)
    {
        (n & i) ? printf("1") : printf("0");
    }
    putchar('\n');
}

int main()
{
    
    int x = 5;
    int y = 6;
    bin(x);
    bin(y);
    printf("Wykorzystujac OR i NOT\n");
    bin(~(~x | ~y));
    printf("Wykorzystujac AND\n");
    bin(x&y);
    printf("Wykorzystujac AND i NOT\n");
    bin(~(~x & ~y));
    printf("Wykorzystujac OR\n");
    bin(x|y);
    
    
    return 0;
}

1

To teraz XOR to bedzie: x ^ y = (x & ~y) | (~x & y)

0

dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1