Wie in C können wir DWORD
Variablen mit einem Low-und High-Wort und Low-und High-Byte lesen und machen?DWORD-Variable mit Low/High-Wort und Low/High-Byte
Antwort
In Win32 ist eine DWORD eine 32-Bit-Ganzzahl ohne Vorzeichen. In anderen Zusammenhängen könnte es möglicherweise etwas anderes bedeuten.
die Win32-Definition Assuminng (und andere typedefs Win32):
BYTE lsb = 0x11 :
BYTE next_lsb = 0x22 :
BYTE next_msb = 0x33 :
BYTE msb = 0x44 :
DWORD dword_from_bytes = (msb << 24) | (next_msb << 16) | (next_lsb << 8) | lsb ;
dword_from_bytes
wird 0x44332211
den Wert haben.
Ähnlich:
WORD lsw = 0x1111 :
WORD msw = 0x2222 :
DWORD dword_from_words = (msw << 16) | lsw ;
dword_from_words
den Wert 0x22221111
haben.
das dritte Byte von dword_from_bytes
zum Beispiel sagen zu extrahieren:
next_msb = (dword_from_bytes >> 16) & 0xff ;
obwohl die & 0xff
in diesem Fall nicht unbedingt erforderlich ist, die Art der next_msb
gegeben, aber wenn der Typ des Empfängers war größer als 8 Bit Es wird die MSB-Bits ausblenden.
WinAPI bietet Makros für die Manipulationen dieser Art, wie zum Beispiel:
zusätzlich haben Sie die 'HIBYTE' bzw.' LOBYTE' –
- 1. Mit 'und' und 'oder' Logik mit Dropdown-Menüs und MixItUp
- 2. Ärger mit Typenkonflikt mit TBCDField und TFMTBCDField und Oracle-Kompatibilität
- 3. mit Chutzpah und Jasmin mit typscript und Systemjs
- 4. Schaltfläche mit Hintergrund Farbverlauf und Bild mit HTML und CSS
- 5. Gunicorn und Django mit Upstart und Nginx
- 6. CAShapeLayer mit Rahmen- und Füllfarbe und Abrundung
- 7. Stoi und Debugging mit valgrind und gdb
- 8. Vererbung und Abhängigkeitsinjektion mit Roboguice und RxJava
- 9. Service und Datenzugriffsschicht mit Streifen und Mongodb
- 10. Verschlüsseln und Entschlüsseln mit Python und Nodejs
- 11. mysql Abfrage mit UND, ODER und NICHT
- 12. Kannibalen und Missionare mit IDDFS und GreedyBFS
- 13. jQuery-Selektor mit „und“ und „oder“
- 14. _addcarry_u64 und _addcarryx_u64 mit MSVC und ICC
- 15. Inkrement und Dekrementoperator mit Division und Multiplikation
- 16. EmbeddedChartBuilder mit und
- 17. Echo mit || und &&
- 18. Mit ngFor und ngFormControl
- 19. SUMIFS mit ODER UND
- 20. $ .post() mit und Rück
- 21. Mit randoms und super
- 22. Mit QTip und Aufruf
- 23. Mit Firebase und S3
- 24. Mit Clang und LLVM
- 25. Mit ActionBarCompat und requestWindowFeature
- 26. NSAttributedString mit und
- 27. Mit Meteor.methods und Meteor.call
- 28. Configparser und String mit%
- 29. Vorschau und Öffnen mit
- 30. Java: Boxen und mit ==
Nun beginnt es Sinn zu machen. Aber was bedeuten die '<<', '>>' und '|' eigentlich? Vielen Dank! – Midas
Es ist besser, die dedizierten Makros wie 'HIWORD',' LOWORD', 'MAKELONG' usw. zu verwenden. Da verschiedene Prozessoren verschiedene Byte-Reihenfolgen verwenden (Little/Big Endian usw.) – valdo
Nun, macht nichts. Ich habe die Dokumentation über bitweise Operatoren gelesen und verstehe, wie es jetzt funktioniert! – Midas