Moin,
mal noch bisschen DS knowledge benutzen:
Habe hier für HAs ne Funktion in C vor mir:
void unpackData(unsigned char *buffer, unsigned int *a, unsigned int *b)
{
*a = (buffer[0]<<8) | buffer[1];
*b = (buffer[2]<<8) | buffer[3];
}
Und ich soll jetzt ne entsprechende Funktion packData() schreiben,
die zwei unsigned integer a,b eben in ein unsigned char buffer[4] packt.
So zur eigentlichen Frage:
Ist (buffer[0]<<8) nicht = 0?? char hat doch nur 8 bit oder? Und damit (buffer[0]<<8) | buffer[1] = buffer[1] ?
Ergibt aber irgendwie keinen Sinn, was überseh ich?
lg
mal noch bisschen DS knowledge benutzen:
Habe hier für HAs ne Funktion in C vor mir:
void unpackData(unsigned char *buffer, unsigned int *a, unsigned int *b)
{
*a = (buffer[0]<<8) | buffer[1];
*b = (buffer[2]<<8) | buffer[3];
}
Und ich soll jetzt ne entsprechende Funktion packData() schreiben,
die zwei unsigned integer a,b eben in ein unsigned char buffer[4] packt.
So zur eigentlichen Frage:
Ist (buffer[0]<<8) nicht = 0?? char hat doch nur 8 bit oder? Und damit (buffer[0]<<8) | buffer[1] = buffer[1] ?
Ergibt aber irgendwie keinen Sinn, was überseh ich?
lg