xultz escreveu:
Lucas, converter para hexa ou binário é a mesma coisa, é só uma forma de você escrever um determinado número.
A idéia é a seguinte: suponha que eu tenho o número 157. Quando representado em ASCII, ele ocupa três bytes, sendo um para o dígito '1', outro para o dígito '5', e outro para o dígito '7', correto? Caso você não seja muito familiarizado com a tabela ASCII, veja a mesma neste site: http://www.asciitable.com/ e verifique que o código para o dígito '1' é 49 em decimal, ou 0x31 em hexadecimal. Assim, na memória do teu microcontrolador e durante a transmissão destes dígitos no teu pacote TCP, ele seriam (em hexa) 0x31 0x35 0x37, ocupando 3 bytes, certo? Agora, eu posso pegar estes três dígitos e convertê-los para um único valor em decimal, cujo valor é 157, ou 0x9D em hexa, correto? Desta forma, eu ocupo um único byte para armazenar este valor.
Veja um outro exemplo com um número grandão, por exemplo, 57129. Em ASCII, este valor ocupa 5 bytes, um para cada dígito, porém este valor convertido para hexadecimal tem valor 0xDF29. Ou seja, ao invés de 5 bytes, são necessários somente 2 para representar o mesmo valor. Esta é a ideia de converter os valores de ASCII para hexa e economizar alguns bytes (você provavelmente vai economizar mais de 50%).
RESPONDI:
Caramba, finalmente entendi...
kkkkkkkkkkk
agora tenho varias duvidas relacionadas a isso...
1- Eu nunca sei qual vai ser o tamanho do meu numero, pode ser 1 ou 3743724 ou outro valor. o hex vai ficar variando de tamanho?
2- Como eu enviaria esses dados? concatenaria todos com "strcat" numa unica string?
3- consegui entender tudo, mas como economiza espaco, pensei em gravar na eeprom assim tambem para economizar espaco na eeprom, o que acha? pensando como fazer isso.
agora estou imaginando como seria a logica de montar um pacote com os dados em hexa todos juntos com a data e tal, formando um pacote completo... para nao fazer m**** e identificar por exempo 0xDF29 como sendo 4 bytes D,F,2,9...
A melhor resposta que tive ate agora!!!
Estou perto de resolver isso!!!