- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: int später wieder zusammensetzen (c#)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.11.2009
    Beiträge
    29

    int später wieder zusammensetzen (c#)

    Anzeige

    Powerstation Test
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Ein & ist was anderes als ein +.

    Wenn du sowas wie (buffer[11] << 24) & (buffer[12] << 16) machst und buffer ist jeweils ein Byte, dann kommt immer 0 raus, da & ein logisches AND ist.
    #ifndef MfG
    #define MfG

  3. #3
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    47
    Beiträge
    245
    Du mußt die Teilzahlen verodern... nicht mit und
    weil du erzeugst ja folgendes:
    10010000 00000000 00000000 00000000 (mit <<24)
    00000000 01001001 00000000 00000000 (mit <<16)
    und haben willst du:
    10010000 01001001 00000000 00000000
    das erreichst du mit | also oder

    lg

    Alex

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    21.11.2009
    Beiträge
    29
    ach ja genau stimmt....

    danke vielmals

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress