AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zahl nach eindeutigen Summanden auftrennen (wie ChMod)
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

Ein Thema von blackdrake · begonnen am 6. Apr 2008 · letzter Beitrag vom 6. Apr 2008
Antwort Antwort
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:33
Hallo.

Ich habe eine Tabelle mit folgenden Optionen als Grundvorlage:

Code:
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
Es können sich wie bei Linux' ChMod viele Varianten ergeben wie z.B. Zustand A, B und K (16+32+16384=16432).
Wie kann ich jetzt anhand einer Zahl wie z.B. 16432 herausfinden, welche Zustände aktiviert sind?

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:36
Durch Ausmaskieren
Markus Kinzler
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:38
Ausmaskieren? Etwa Zahl in Binärcode umwandeln und dann mit AND Arbeiten? Oder gibts eine mathematische Variante?
Daniel Marschall
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:43
Vielen Dank für den Tipp. Ich habe gemerkt, dass sich bei dem Binärcode eine "Treppe" bildet:

Code:
A 0000000000010000
B 0000000000100000
C 0000000001000000
D 0000000010000000
E 0000000100000000
F 0000001000000000
G 0000010000000000
H 0000100000000000
I 0001000000000000
J 0010000000000000
K 0100000000000000
L 1000000000000000
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?
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:58
Es geht viel einfacher mit AND
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Zahl nach eindeutigen Summanden auftrennen (wie ChMod)

  Alt 6. Apr 2008, 22:59
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: Tutorial: effizientes arbeiten mit Bitmasken, Michael Puff: Wie funktionieren bitweise OR Verknüpfungen, Ein Beitrag mit entsprechenden Erklärungen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz