Implementar a função cujo cabeçalho é apresentado a seguir: unsigned int calculaParidade (unsigned char b); Interferências, ruídos e outros fenômenos que prejudicam a integridade dos dados são problemas fundamentais quando computadores se comunicam em rede. Para detectar alterações em bits, os dados são sempre enviados com redundâncias computadas a partir dos bits originais. Este tipo de técnica de detecção de erros costuma receber o nome de checksum, e segue o mesmo princípio dos dígitos verificadores presentes em diversos documentos e identificadores numéricos (por exemplo, números de contas e agências bancárias). Uma das técnicas de detecção de erros mais simples e mais usadas é o teste de paridade. Cada byte é enviado junto com um bit adicional, que indica se o número de bits com valor 1 no byte é par (bit redundante = 0) ou ímpar (bit redundante = 1). Por exemplo um byte com o valor 8 tem os bits 00001000, ou seja, apenas 1 bit “setado”, portanto a sua paridade é 1. Já um byte com o valor 0x55 é representado pelos bits 01010101 – 4 bits “setados”, portanto a sua paridade é 0 (zero). A função calculaParidade deve receber como parâmetro um byte enviado ou recebido através de uma conexão, e retornar o valor do bit redundante (0 ou 1). Para demonstrar o funcionamento demonstre o cálculo de pariedade de cada dígito do seu primeiro nome. Utilize o valor dos caracteres na tabela ASCII (disponível no anexo).
Exemplo:
Letra | Valor decimal na tabela ASCII | Valor binário | Pariedade |
U | 85 | 0101 0101 | 0
N | 78 | 0100 1110 | 0
I | 73 | 0100 1001 | 1
N | 78 | 0100 1110 | 0
T | 84 | 0101 0100 | 1
E | 69 | 0100 0101 | 1
R | 82 | 0101 0010 | 1