![]() |
Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachsten?
Hallo,
ich habe ein Byte und 8 Boolsche Variablen. Wie kann ich am besten die 8 Bool-Variablen je nach Wert des Bytes ansteuern? gibts da eine procedure dafür oder etwas ähnliches? |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Komische Frage, weil man Variablen nicht ansteuert...
Um zu prüfen, ob das N.te Bit (N=0..7) gesetzt ist, kannst Du das hier machen:
Delphi-Quellcode:
Function IsBitSet (aByte : Byte; aBit : Byte) : Boolean;
Begin Result := (aByte and (1 shl aBit)) <> 0; End; |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
hallo
sorry - man beschreibt Variablen - man steuert sie nicht an! Deine function ist leider nicht das was ich brauche. Ich habe ein Byte und je nach Wert des Bytes sollen die Variablen beschrieben werden. |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Delphi-Quellcode:
Ist das eher was?
type
TBoolByteArray = array[0..7] of Boolean; function ByteToBoolArray(B: Byte): TBoolByteArray; var i: Integer; begin for i := 0 to 7 do Result[i] := (B shr (7-i)) and 1; end; |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Oder allgemein:
Delphi-Quellcode:
[add] @Dax: Du weißt einem Boolean ein Byte zu :wink: . [/add]
// Binäre Darstellung eine Speicherstelle der Länge ASize (in Byte) als
// dynamisches Boolean-Array function GetBits(const AValue; const ASize: Cardinal): TBooleanDynArray; var i: Integer; begin SetLength(Result, ASize * 8); for i := 0 to ASize * 8 - 1 do Result[i] := PByte(Integer(@AValue) + i div 8)^ and (1 shl (i mod 8)) <> 0; end; |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
@Dax, @Khabarakh: irgendwie bekomm ich eure beiden Functions nicht zum laufen
bei Dax-Function bekomm ich "[Fehler] Unit1.pas(110): Inkompatible Typen: 'Boolean' und 'Integer'" bei
Delphi-Quellcode:
bei Khabarakh: "Inkomplatible Typen" bei
Result[i] := (B shr (7 - i)) and 1;
Delphi-Quellcode:
Sorry!
SetLength(Result, ASize * 8);
|
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Delphi-Quellcode:
Sorry, so sollts gehen :)
Result[i] := ((B shr (7 - i)) and 1) = 1;
|
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Zitat:
Vielen Dank - jetzt gehts! |
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Zitat:
|
Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 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 by Thomas Breitkreuz