por phophollety » 14 Set 2008 09:06
- Código: Selecionar todos
int valorDe16BitsASerGravado = 0xFFFF;
char valorLow, valorHigh;
// Gravar...
valorLow = valorDe16BitsASerGravado;
valorHigh = valorDe16BitsASerGravado >> 8;
// Ler...
valorLow = valorDe16BitsASerGravado;
valorHigh += unsigned int ( valorDe16BitsASerGravado << 8 );
// este unsigned int é um casting, quer dizer que esta operação será feita dentro de um registrador de 16 bits ( um int ) pois se vc rotacionar qualquer valor mesmo que seja 0xFF 8 vezes a esquerda, vai ter um 0x00 mas, se o fizer em 16 bits, terás 0xFF00
Só salvar o valorLow e o valorHigh, grave o High primeiro, no endereço 0x00 por exemplo e o low no 0x01, não que faça diferença no funcionamento mas, na hora de usar um for ou ter um mapa de memória ajuda...
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.