Forum: Programmieren allgemein
by himitsu,
16. Jun 2020
if byte1 and 1 = 1 then
if byte1 and 2 = 2 then
if byte1 and 4 = 4 then
if byte1 and 8 = 8 then
...
// keine Redundanzen: erstmal die unnötig doppelten Zahlen entfernt
if byte1 and 1 <> 0 then
if byte1 and 2 <> 0 then
Forum: Programmieren allgemein
by himitsu,
2. Jun 2020
Warum nicht gleich richtig initialisieren? (:= 1;)
Und was die doppelte Prüfung soll, hab ich nicht verstanden.
Denn aus if CheckBit($2A, 5) = 32 then wird if $2A and (1 shl 5) = 32 then, (wenn ich den Inhalt deiner Funktion wegoptimiere und den Fall "Bit nicht gesetzt" igonriere, da er für dieses IF egal ist)
obwohl if $2A and (1 shl 5) <> 0 then, bzw if $2A and 32 <> 0 then ausreicht,...
Forum: Programmieren allgemein
by himitsu,
1. Jun 2020
Was ist an der Schleife so schwer?
schauen ob LSB gesetzt ist (Odd)
wenn nicht, dann Shift rechts und erneut nachsehen. (dabei mitzählen wie oft)
Wenn Durchläufe größer Bitanzahl, dann abbrechen. Ober besser schon vorher nachsehn ob Wert<>0 (mindestens ein Bit vorhanden).