Jump to content
Fórum Script Brasil
  • 0

BioByte

Question

Boa noite a todos.

Preciso de ajuda para criar um checksum de codificação e decodificação para um vetor de char. O problema em si é o seguinte: O usuário digita as letras no teclado e armazenado em um vetor de char, a partir desse vetor de char é chamada uma função char *codifica(char *) e dentro dela é feito o checksum. O checksum do programa funciona assim: Tomando como exemplo que o usuário digitou 3 letras, cada letra tem 8 bits, na primeira sequencia de bytes o checksum passa um XOR nos sete primeitos bits e no oitavo ele é armazenado então o oitavo bit da sequencia original da primeira letra fica na posição nove e é a partir desse bit que foi deslocado da posição oito para nove que começa a contar uma nova sequência de bits da outra letra fazendo a segunda ter seus dois ultimos bits deslocados e na terceira ter os seus três ultimos bits deslocados. No final da função retorna o vetor codificado então ele entra em outra função char *decodifica(char *) para fazer a sua decodificação e passar o checksum para verificar possíveis erros.

Originalmente o que eu tinha feito era tratar o vetor de char como um int e transformar cada letra em binario e armazenar em um outro vetor e então a função de codificação era chamada para fazer a codificação direto pelos bits. Mas discutindo com os meus colegas de turma um deles me avisou que o professor não aceitará manipular diretamente os bits, eles tem que ficar "mascarados" e fazer todas essas operaçoes de bits nos "bastidores".

Já tenho um certo conhecimento de C e de suas funções como alocação dinâmica de memória,criação de funções, retorno de vetores em funções mas o grande problema meu é exatamente no miolo do programa. Não sei como manipular os bits dentro do char e deslocar os últimos e começar a contar a partir deles para fazer o novo ciclo do XOR sem ser pela manipulação direta dos bits por que não pode. Uso o Visual Studio 2013 e codeblocks.

Agradeço a ajuda desde já.

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...