byte Array



  • Hallo zusammen!

    wenn ich ein byte array habe, mit z.B. folgenden werten:
    '12','4A','33'
    wieso bekomme ich dann immer nur die 1, wenn ich array[0] ausgebe?ich will doch die 12, ein byte speichert doch zwei werte, oder?

    ich weiß, ein byte ist ein unsigned char.

    danke, gruss,
    florian



  • Wie was wo? Zeig mal ein Code-Beispiel.



  • Shlo schrieb:

    Wie was wo? Zeig mal ein Code-Beispiel.

    byte rbArray[4]={'12','30','4A','4B'};
    printf(rbArray[1]);
    

    dann kommt 3 statt 30 als ausgabe.
    danke im voraus!



  • Hallo,

    byte speichert doch zwei werte

    Wie zwei Werte? Ein char speichert 256 verschiedene Werte. Dein Code ist ja auch völlig falsch. Soll das C sein? Du musst printf schon sagen, was er wie ausgeben soll, und den Datentyp byte gibts auch nicht....

    char rbArray[4]={12,64,4, 5};
            printf("%c\n", rbArray[1]);
    


  • Bekommst du denn keine Warnung oder ähnliches? '12' ist doch kein einzelnes Zeichen, sondern eine Zeichenkette (die ' müssten durch " ersetzt werden) die dann auf char abgeschnitten wird, deshalb siehst du nur die 1.

    byte b[] = {12,30,0x4a,0x4b}; //oder '\x4a', '\x4b'
    


  • bekomme keine antwort.
    nein, ich benutze soweit es geht c++.
    also

    MemoFeld->Lines->Add(rbArray[1]);

    warnung bekomme ich keine.
    " sind nicht zulässig bei einem byte array.

    jo ich weiß dass ein byte 255 werte speichern kann. drum, ein hexadezimales 4A=74.

    Danke Shlo, die 0x haben mir gefehlt. Vielen Dank,
    bis ein ander mal!
    florian



  • Hallo nochmal!

    Wenn ich diesen byte array

    byte b[] = {12,30,0x4a,0x4b};
    

    jetzt in einen unsigned int array umwandeln möchte, wie geht das denn?
    dankedanke!



  • unsigned int array[4];

    array[0] = rbArray[0];

    einfach kopieren, Informationsverlust tritt ja keiner auf



  • sehr gut, ich bin entzückt von diesem forum und euch dankbar, ihr fleißigen helfer!

    Daaaanke!
    florian


Anmelden zum Antworten