![]() |
Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Hallo.
Ich habe eine Tabelle mit folgenden Optionen als Grundvorlage:
Code:
Es können sich wie bei Linux' ChMod viele Varianten ergeben wie z.B. Zustand A, B und K (16+32+16384=16432).
16 10 00 00 00 Zustand A
32 20 00 00 00 Zustand B 64 40 00 00 00 Zustand C 128 80 00 00 00 Zustand D 256 00 01 00 00 Zustand E 512 00 02 00 00 Zustand F 1024 00 04 00 00 Zustand G 2048 00 08 00 00 Zustand H 4096 00 10 00 00 Zustand I 8192 00 20 00 00 Zustand J 16384 00 40 00 00 Zustand K 32768 00 80 00 00 Zustand L Wie kann ich jetzt anhand einer Zahl wie z.B. 16432 herausfinden, welche Zustände aktiviert sind? Gruß blackdrake |
Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Durch Ausmaskieren
|
Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Ausmaskieren? Etwa Zahl in Binärcode umwandeln und dann mit AND Arbeiten? Oder gibts eine mathematische Variante?
|
Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Vielen Dank für den Tipp. Ich habe gemerkt, dass sich bei dem Binärcode eine "Treppe" bildet:
Code:
Ich werde mal eine Funktion suchen, die eine Dez-Zahl in Binärcode (->String) umwandelt und dann mit Copy() prüfen, ob sich an Stelle X eine 1 befindet. Ist das korrekt so?
A 0000000000010000
B 0000000000100000 C 0000000001000000 D 0000000010000000 E 0000000100000000 F 0000001000000000 G 0000010000000000 H 0000100000000000 I 0001000000000000 J 0010000000000000 K 0100000000000000 L 1000000000000000 |
Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Es geht viel einfacher mit AND
|
Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Nein, maskiere die Bits aus. Es ist eine Bitmaske, also warum eine solche Arbeit mit den Strings?
Ansonsten: chmod arbeitet mit Oktalzahlen! Noch ein paar Links: ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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