hallo,

ich weiß es passt nicht wirklich hierher, aber ich habe folgendes problem...

schicke ein signed int32_t über die serielle schnittstelle an den pc.

dort lese ich mit einer in c# geschreibenen software wieder aus.
habe ursprünglich das zusammensetzen der 8bit werte zu einem 32 bit zahl ursprünglich so gelöst:

byte[] buffer = new byte[20];

int lleistung = 0;

lleistung = buffer[13];
lleistung += (buffer[12] << ;
lleistung += (buffer[11] << 16);


funktiniert auch gut, solange nur positive zahlen ankommen. ist logisch, da ja die zahlen im zweierkompliment vorliegen... habe mir dann gedacht so müsste es gehen.

lleistung = (int)((buffer[11] << 24) & (buffer[12] << 16) & (buffer[13] << & (buffer[14]));

lleistung ist aber immer 0.

wie macht man das richtig?

vielen dank