Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#8

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 20:12
Erstmal zu if Bit7.checked = true then .
Diese Konstanten sollte man immer nur für Zuweisungen, aber niemals für Vergleicher verwenden,
denn wie bereits bemerkt, besteht ein Delphi-Boolean intern aus einem Byte, wo es 1 Mal das False und 255 Mal ein True Nicht-False gibt.
und bei einem LongBool hast du den Spaß sogar mit 4.294.967.295 Mal dem "True".

i := i + 1;
Wenn man "Binär" rechnen will, dann natürlich mit binären Operatoren ala OR und AND und nicht mit arithmetischen Operatoren ala ADD (+),
denn B := B or $01; // oder 1 arbeitet immer richtig, aber ein B := B + $01; // oder 1 macht Probleme, wenn dieses Bit bereits gesetzt ist.
Aber dafür hast'e ja nun das Tutorial.

Delphi-Quellcode:
var B: Boolean;

B := Boolean(3); // die Variable könnte mal ausversehn mit einem "unschönen" True aus irgendeiner Funktion raus kommen.

if B = True then ShowMessage('Falsch: True');
if B = False then ShowMessage('Falsch: False');

if B then ShowMessage('Richtig: True');
if not B then ShowMessage('Richtig: False');

PS: TCheckListBox und eine For-Schleife über alle Bits/CheckBoxen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (29. Mär 2017 um 20:17 Uhr)
  Mit Zitat antworten Zitat