Ich empfange eine Portnummer als 2 Bytes (am wenigsten signifikante Byte zuerst) und ich möchte es in eine ganze Zahl umwandeln, damit ich damit arbeiten kann. Ich habe das gemacht:Convert 2 Bytes in eine ganze Zahl
char buf[2]; //Where the received bytes are
char port[2];
port[0]=buf[1];
port[1]=buf[0];
int number=0;
number = (*((int *)port));
Allerdings ist etwas falsch, weil ich nicht die richtige Portnummer bekomme. Irgendwelche Ideen?
ist Ihre Endianz die gleiche? –
auch 2 Bytes vs 4 Bytes: kurze vs int –
Verwenden Sie Uint16_t, um die Besetzung zu tun –