Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Boolean = 1 Byte (https://www.delphipraxis.net/128122-boolean-%3D-1-byte.html)

mr_emre_d 24. Jan 2009 15:58


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

Meflin 24. Jan 2009 16:16

Re: Boolean = 1 Byte
 
Jo. 1-Bit-Werte gibts in nem 32-Bit Prozessor überhaupt nicht ;)

mkinzler 24. Jan 2009 16:49

Re: Boolean = 1 Byte
 
1-Bit Werte gab es eigentlich auch bei 8/16-Bit Prozessoren nicht. Die kleinste adressierbare Einheit ist ein Byte

himitsu 24. Jan 2009 17:34

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)

mr_emre_d 24. Jan 2009 17:54

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...

DeddyH 24. Jan 2009 17:57

Re: Boolean = 1 Byte
 
Somit hast Du die Bitmaske neu erfunden :mrgreen:

mkinzler 24. Jan 2009 17:57

Re: Boolean = 1 Byte
 
Ist aber langsamer als für jeden Wert ein Byte zu verwenden

himitsu 24. Jan 2009 18:14

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

Apollonius 24. Jan 2009 19:50

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.

himitsu 24. Jan 2009 20:16

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.
Seite 1 von 2  1 2      

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