mijn voorkeur:
code:
for (i = 0; i < 8; i++)
lchar[i] = RAM_content & (0x80>>i) ?'1':'0';
lchar[i] = '\0'; // terminate string
Ik vind het fijn om de "deze loop gaat 8 keer", de 8 echt in m'n code te zien. De extra variabele vind ik niet nodig -> ik heb niet die dubbele constructies met de comma. De "terminate" in de henri62 code KAN niet goed zijn met de \0 al in 255 van 256 mogelijke inputwaardes. De bedoeling was overduidelijk om de ascii chars 0 en 1 te gebruiken.
en eigenlijk is:
code:
itoa (RAM_content, lchar, 2);
het beste. Maar dan is het denk ik niet meer altijd precies 8 karakters.
Nog een alternatief:
code:
for (i = 0; i < 8; i++)
lchar[i] = '0' + ((RAM_content >> (7-i)) & 1);
lchar[i] = '\0'; // terminate string
Ik heb vluchtig een paar posts terug iets gezien over getallen bij chars optellen. Dus zoiets zal dat wel getriggerd hebben. Ik heb daar niets op tegen.