Von Binärzahl Stellen ausgeben, wo eine "1" ist.

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Von Binärzahl Stellen ausgeben, wo eine "1" ist.
von: Thomas K.
Geschrieben am: 15.06.2015 09:18:02

Hallo zusammen,
ich möchte eine Binärzahl (z.B. "100111011") von rechts nach links durchsuchen und mir die Stellen ausgeben, wo eine "1" ist.
Wie kann ich das am einfachsten realisieren?
Vielen Dank schon mal!
Gruß,
Thomas

Bild

Betrifft: AW: Von Binärzahl Stellen ausgeben, Rückfrge
von: Daniel
Geschrieben am: 15.06.2015 09:37:19
HI
Wie liegen die Daten vor und wie soll das Ergebnis ausgegeben werden?
Gruß Daniel

Bild

Betrifft: AW: Von Binärzahl Stellen ausgeben, Rückfrge
von: Thomas K.
Geschrieben am: 15.06.2015 09:46:32
Die Binärzahl wird auf einer Userform eingegeben und dann in einer Variable "bin" abgespeichert.
Das Ergebnis muss nicht direkt ausgegeben werden. Ich möchte die Stelle wo eine "1" vorkommt dann innerhalb einer if/else - Verzweigung nutzen, also so in der Art zum Beispiel:
if "Stelle 5 == 1"
dann mache ich das und das..
else if "Stelle 3 == 1"
dann...
Gruß,
Thomas

Bild

Betrifft: AW: Von Binärzahl Stellen ausgeben, Rückfrge
von: Nepumuk
Geschrieben am: 15.06.2015 09:55:06
Hallo,
die 5. Stelle prüfst du einfach so:

If Mid$(bin, 5, 1) = 1 Then 
Gruß
Nepumuk

Bild

Betrifft: AW: Von Binärzahl Stellen ausgeben, Rückfrge
von: Nepumuk
Geschrieben am: 15.06.2015 09:57:11
Achso,
von vorne gerechnet natürlich.
Gruß
Nepumuk

Bild

Betrifft: AW: Von Binärzahl Stellen ausgeben, Rückfrge
von: Daniel
Geschrieben am: 15.06.2015 10:43:25
Hi
wenn bin ein Text ist mit einer Ziffernfolge von "1" und "0" dann musst du, wie von Nepumuk gezeigt die einzelnen Stellen mit der MID-Funktion auslesen und prüfen ob der Text "1" oder "0" ist.
beachten musst du hierbei, dass MID die Stellen von links zählt, dh wenn deine Stellenanzahl von rechts geht, dann musst du entsprechend umrechnen.
solltest du den bin aber in einen Zahlenwert umgerechnet haben , kannst du die AND-Funktion für den Bitweisen vergleich verwenden.
bspw die Prüfung für das 5. Bit (2^4):

If bin AND 2^4 = 2^4 Then
Gruß Daniel

Bild

Betrifft: per Arrayformel
von: WF
Geschrieben am: 15.06.2015 09:51:13
Hi,
Binärzahl in A1
irgendwo die Arrayformel:
{=KKLEINSTE(LÄNGE(A$1)+1-(TEIL(A$1;ZEILE(INDIREKT("1:"&LÄNGE(A$1)));1)*1=1) *ZEILE(INDIREKT("1:"&LÄNGE(A$1)));ZEILE(A1)) }
runterkopieren
Die Zahlen LÄNGE(A1)+1 und dann die Fehlerwerte bekommst Du selber weg.
Salut WF

Bild

Betrifft: Könnte mir vorstellen, dass das eigentliche ...
von: Luc:-?
Geschrieben am: 15.06.2015 11:46:26
…Problem komplexer ist, Thomas,
und die einzelnen Stellen eine bestimmte Ja/Nein-Bedeutung haben, die du checken willst. Da wäre in VBA evtl eine Schleife oder (auch per ZellFml) eine ganz andere Herangehensweise hilfreicher. Dein Bsp entspricht der Dezimalzahl 315. Man könnte auch generell in eine solche Umwandeln und dann auf die relevanten Zahlen (also 1-Variationen) prüfen. Oder, falls jede 1 ein anderes Merkmal bedeutet und du diese zusammenstellen willst, daraus eine MatrixKonstante, zB {1;0;0;1;1;1;0;1;1}, machen und danach per INDEX-Formel aus dem Bereich der Merkmale auswählen.
Gruß, Luc :-?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Von Binärzahl Stellen ausgeben, wo eine "1" ist."