Erros e códigos de detecção:
Detecção de erros por paridade:
Sabendo a posição do bit de erro pro caso de paridade par usa-se a regra:
Deve haver um número par de 1's logo se há um numero par de 1's o bit de paridade é 0
Por paridade ímpar usa-se a regra:
Deve haver um número ímpar de 1's logo se há um numero ímpar de 1's o bit de paridade é 0
EXEMPLO:
1001 Paridade Par 0,Paridade Impar 1
1111 Paridade Par 0,Paridade Impar 1
1011 Paridade Par 1,Paridade Impar 0
1010111 Paridade Par 1,Paridade Impar o
Se o bit de paridade tiver no começo(Vermelho) as mensagens acima ficariam:
1001 Par : 01001 Ímpar: 11001
1111 Par: 01111 Ímpar: 11111
1011 Par: 11011 Ímpar: 01011
1010111 Par: 11010111 Ímpar: 01010111
Detecção e Correção Por henning:
O código de henning usa bits de paridades em locais específicos da mensagem:
Pra saber quantos bits são necessários deve-se seguir a equação 2^p Maior Igual d+p+1.
Sendo assim o menor numero que satisfazer a equação é o numero de bits de paridade necessários:
Por exemplo uma mensagem de 4 bits precisa de 3 bits de paridade pois :
2^3 Maior igual que 4+3+1
8 Maior igual 8
Você deve colocar os bits de paridade em potências de 2 na posição e o numero binário da posição indica com quais bits ele está fazendo paridade> por exemplo a mensagem de 4 bits: 1010
Posição | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Posição Binária | 01 | 10 | 11 | 100 | 101 | 110 | 111 |
Tipo do Bit | P | P | D | P | D | D | D |
Onde P é paridade e D é digito normal :
O numero 1 na posição binária indica quais posições ele monitora:
o da posição 1 monitora todos que tenham 1 no começo ou seja 3,5 e 7.
O da posição 2 todos que tenham 2 na segunda posição ou seja 3,6 e 7.
E o da posião 4 todos que tenham 1 no final ou seja 5,6,7
Logo nosso código de paridade om paridade par ficaria
1011010 em que os bits de paridade estão em vermelho.
Sendo assim se houver um erro é possivel traçar em qual posição houve o erro
Para traçar o erro simplesmente pegue os bits q ele monitora e faça a paridade
Vamos introduzir um erro na posição 6 trocando o 1 por 0
P1 | 1 | X | 1 | X | 0 | X | 0 |
P2 | X | 0 | 1 | x | x | 0 | 0 |
P3 | X | X | X | 1 | 0 | 0 | 0 |
Pegue essa sequencia invertida. Será
110 que nos dará a posição (que é 6).
Algebra Booleana
Operadores Booleanos:
E se for verdadeiro E verdadeiro então retorna verdadeiro.
OU se for qualquer um dos valores verdadeiros então retorna verdadeiro
Não Se for verdadeiro retorna falso, se for falso retorna verdadeiro
XOR: Se for APENAS 1 verdadeiro e o OUTRO falso retorna verdadeiro.
Simplificação de expressões:
A.!B+!B.A+C.D.E+!C.D.E+E.!C.D
enxergando tudo que tem . como bloco e os + como separadores dos blocos.
Peguemos lugares em que tenham variaveis iguais:
Então teriamos :
(A.!B+!B.A)+(C.D.E+!C.D.E+E.!C.D)
No primeiro bloco A e Não B ou Não B e A é a mesma coisa. Logo ficamos com
(A.!B)+(C.D.E+!C.D.E+E.!C.D)
No segundo bloco !C.D.E OU E.!C.D que vem a ser a mesma coisa então cortamos esse bloco
e ficamos apenas com
(A!B)+(C.D.E+!C.D.E)
Nessa expressão o C não contribui em nada logo C.D.E OU !C.D.E é igual a D.E
Ae ficamos com (A!B)+(D.E)
Operadores Booleanos:
E se for verdadeiro E verdadeiro então retorna verdadeiro.
OU se for qualquer um dos valores verdadeiros então retorna verdadeiro
Não Se for verdadeiro retorna falso, se for falso retorna verdadeiro
XOR: Se for APENAS 1 verdadeiro e o OUTRO falso retorna verdadeiro.
Simplificação de expressões:
- Agrupe por grupos de E.
- Simplifique as que tiverem variáveis iguais:
- Remova os pontos que não contribuem;
A.!B+!B.A+C.D.E+!C.D.E+E.!C.D
enxergando tudo que tem . como bloco e os + como separadores dos blocos.
Peguemos lugares em que tenham variaveis iguais:
Então teriamos :
(A.!B+!B.A)+(C.D.E+!C.D.E+E.!C.D)
No primeiro bloco A e Não B ou Não B e A é a mesma coisa. Logo ficamos com
(A.!B)+(C.D.E+!C.D.E+E.!C.D)
No segundo bloco !C.D.E OU E.!C.D que vem a ser a mesma coisa então cortamos esse bloco
e ficamos apenas com
(A!B)+(C.D.E+!C.D.E)
Nessa expressão o C não contribui em nada logo C.D.E OU !C.D.E é igual a D.E
Ae ficamos com (A!B)+(D.E)
Conversões de bases numéricas
Decimal para binário:
35/2= 17 e resto 1
17/2= 8 e resto 1
8/2= 4 e resto 0
4/2= 2 e resto 0
2/2 =1 e resto 0
1/2= resto 1
Logo 35 é 100011
Decimal pra hexadecimal
Siga os passos a cima dividindo por 16 ao invés de 2.
Binário para hexadecimal
Cada Hexa dá um grupo de 4 bits, converta-os individualmente.
Por exemplo:
FAB
F=15, A=10 e B=11 Logo FAB= 1111 1010 1011.
Decimais não inteiros para binário:
Que é 1/2+1/8+1/16
Decimal para binário:
- Divide por 2;
- Pega o resto;
- Usa-se o resultado da divisão ;
- e sai na ordem INVERSA ou seja o ÚLTIMO numero achado será o primeiro a colocar.
35/2= 17 e resto 1
17/2= 8 e resto 1
8/2= 4 e resto 0
4/2= 2 e resto 0
2/2 =1 e resto 0
1/2= resto 1
Logo 35 é 100011
Decimal pra hexadecimal
Siga os passos a cima dividindo por 16 ao invés de 2.
Binário para hexadecimal
Cada Hexa dá um grupo de 4 bits, converta-os individualmente.
Por exemplo:
FAB
F=15, A=10 e B=11 Logo FAB= 1111 1010 1011.
Decimais não inteiros para binário:
- Multiplica por 2.
- Pega o numéro após a virgula(que é 0 ou 1)
- Usa-se a parcela apos a virgula no próximo cálculo.
- E sai na ordem DIRETA ou seja o primeiro número é o primeiro após a virgula e assim por diante;
- Pega o número após a virgula e faz vezes 2^base negativa
Que é 1/2+1/8+1/16
Nenhum comentário:
Postar um comentário