Implemente um conversor de código binário de 4 entradas para o código Gray de 4 bits,

utilizando um decodificador mais portas OR.


Resolução:

#include <stdio.h>

// Função para converter código binário para código de Gray
void binaryToGray(int binary[], int gray[]) {
    // O bit mais significativo é copiado diretamente
    gray[0] = binary[0];
    
    // Calcula os bits restantes usando a operação XOR
    for (int i = 1; i < 4; i++) {
        gray[i] = binary[i] ^ binary[i - 1];
    }
}

int main() {
    // Definindo o código binário de entrada (4 bits)
    int binary[4] = {1, 0, 1, 1}; // Exemplo: código binário 1011

    // Definindo o array para armazenar o código de Gray de saída (4 bits)
    int gray[4];

    // Convertendo o código binário para código de Gray
    binaryToGray(binary, gray);

    // Exibindo o resultado
    printf("Código Binário: ");
    for (int i = 0; i < 4; i++) {
        printf("%d", binary[i]);
    }
    printf("\nCódigo de Gray: ");
    for (int i = 0; i < 4; i++) {
        printf("%d", gray[i]);
    }
    printf("\n");

    return 0;
}