![]() |
Boolean = 1 Byte
Ich hab mir vor kurzem die Frage gestellt, warum Booleans 1 Byte groß und nicht 1 Bit ?
Ich nehme an, dass der CPU 1 Byte bzw bei 32 Bit Prozessoren 4 Bytes besser handeln kann als einzelne Bits. Stimmt diese Annahme ? MfG |
Re: Boolean = 1 Byte
Jo. 1-Bit-Werte gibts in nem 32-Bit Prozessor überhaupt nicht ;)
|
Re: Boolean = 1 Byte
1-Bit Werte gab es eigentlich auch bei 8/16-Bit Prozessoren nicht. Die kleinste adressierbare Einheit ist ein Byte
|
Re: Boolean = 1 Byte
wo du jeweils "einfach" bitweise arbeiten kannst, das sind SETs
type MySet = Set of (bit0, bit1, bit2, bit3, bit4, bit5, bit6, bit7); PS: miß mal wie groß BOOL / LongBool sind :stupid: (die sind gut für die WinAPI, denn da ist BOOL je 4 Byte klein, bei der 32-Bit-API) |
Re: Boolean = 1 Byte
Also ich habe das bis jetzt so gemacht, dass ich einen Byte genommen habe und
einfach die Bits gesetzt hab Somit hatte ich dann 8 Booleans in einem... |
Re: Boolean = 1 Byte
Somit hast Du die Bitmaske neu erfunden :mrgreen:
|
Re: Boolean = 1 Byte
Ist aber langsamer als für jeden Wert ein Byte zu verwenden
|
Re: Boolean = 1 Byte
jupp...
Boolean lesen: Byte lesen (und fertsch Boolean speichern: Byte speichern (und och fertsch) Bit lesen: Byte lesen > Maske anwenden Bit speichern: Byte lesen > Maske anwenden > Bit in Byte umwandeln > beide Bytes verknüpfen > Byte speichern |
Re: Boolean = 1 Byte
Bei der zweiten Operation übertreibst du aber. Du kannst zum Beispiel or [Adresse], Maske oder die Befehle BTS bzw. BTR verwenden.
|
Re: Boolean = 1 Byte
na gut, aber ob du das nun selber machst, oder es intern von diesen Befehlen machen läst, sollte doch fast auf's gleich rauskommen :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz