String in bytearray
-
Naja fast

Also ich habe sozusagen ein WORD, brauche dieses WORD aber in 2 BYTEs.
-
Byte01 = static_cast<BYTE>(DeinWord); Byte02 = static_cast<BYTE>(DeinWord >> (sizeof(Byte02) * 8));
-
Die erste Zeile:
Byte01 = static_cast<BYTE>(DeinWord);funktioniert genau wie ich es mir vorgestellt habe
Nur bei der zweiten Zeile:
Byte02 = static_cast<BYTE>(DeinWord >> (sizeof(Byte02) * 8);bring mein Compiler (RAD Studio XE) eine kleine Fehlermeldung:
[BCC32 Fehler] Unit1.cpp(60): E2293 ) erwartet
und markiert die beiden ">>" in der zweiten Zeile.
-
Peinlich. Ich habe eine Klammer vergessen. Ich habe den Code schon überarbeitet.
-
Ausgezeichnet!
Vielen dank, funktioniert super!
Wie bekomme ich jetzt diese 2 Bytes wieder zu ein Word?
-
DeinWord = Byte02; DeinWord <<= sizeof(Byte02); DeinWord |= Byte01;
-
Super, vielen dank, wiedermal etwas dazu gelernt

-
std::uint16_t word = (static_cast<std::uint16_t>(Byte02) << 16) | Byte01;
-
Eine Frage noch, wie bekommen ich ein ByteArray[1024] mit also 1024 Elementen in ein DWORD und zwar nur 4 bestimmte Elemente? z.B. [21] bis [24]?
Habe es so gemacht, sieht aber ziemlich unschön aus:
WORD1=ByteArray[21]; WORD1<<=sizeof(ByteArray[21]); WORD1|= ByteArray[22]; WORD2=ByteArray[23]; WORD2<<=sizeof(ByteArray[23]); WORD2|= ByteArray[24]; DWORD1=WORD1; DWORD1<<=sizeof(WORD1); DWORD1|=WORD2;Gibt bestimmt eine schönere Lösung über die ich sehr dankbar wäre

-
DeinDWORD = static_cast<DWORD>(Bytearray[21]);