Opa! Deu certo…
Dá certo com todas as letras de A até J (a,b,c,d,e,f,g,h,i,j)
Mas de P para frente dá erro…
Substituam todos os lugares que tá ‘C’ por ‘P’ e verifiquem a nova saída:
Saída: ByTE ANTES: 80 (na tabela Ascii, 80 corresponde a letra P) ByTE DEPOIS: 64 (na tabela Ascii, 64 corresponde ao ‘@’)
Não é isso que eu qro fazer…
Eu apenas estou deslocando bits para a direita para poder fazer o “ou”, e depois eu faço o inverso…
Só que para as letras a partir de P não dá certo…
Para a direita há perda de dados. Exemplo:
Seja uma variável de 8 bits e com o valor 00010000.
Se o valor 00010000 for deslocado 3 bits à direita ele torna-se 10000000. Com 4 torna-se 00000000, pois o tipo não aceita o valor 100000000.
Bom, o que está acontecendo…
Olha as entradas e as saídas:
Entrada:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Saída:
ABCDEFGHIJKLMNO@ABCDEFGHIJ
O “Q” é igual o “A”, o R é igual o B, e assim por diante…
Ele está igualando o
Q no A: “01010001” no “01000001”
R no B: “01010010” no “01000010”
S no C: “01010011” no “01000011”
Está ocorrendo a perda desses 2 bits do meio…
Estou fazendo alguma coisa errada, e nao sei onde =[
Acho que o problema é aquele 3, porque em alguns casos pode se que novoRED1 e novoGREEN1 sejam alterados nos mesmos bits. Tenta ver se a forma a seguir funciona: