-
Bytes zerlegen
Hallo zusammen,
ich möchte ein Byte als Abfolge von Nullen und Einsen unter einer Variable speichern. Danach möchte ich die einzelnen Nullen und Einsen in einer For-Schlaufe auslesen und in ein Array ablegen.
Ich hab versucht, die Variable in einen String zu zerlegen und dann die einzelnen Stellen mit "mid" auslesen, klappt aber net
Hat jemand einen Tipp parat, wie man das lösen könnte?
Herzliche Grüsse
Mario
-
Muss aber gehen. Zeig mal' her.
Ist das eine Fingerübung oder was ist der Zweck ? (ich frag' nur, weil's mr umständlich vorkommt)
-
Also:
y=&B11001100
Z=str(y)
For i=1 to 8 Step 1
m = mid(z,i,1)
b=Val(m)
X(i)=b
Next
So siehts aus und so gehts nicht.
-
-
However, falsch ist
Z=str(y) ' ergibt den string "204"
was du brauchst, ist
Z=bin(y) ' das gibt 0-er und 1-er
-
Ah, ok! Und das bin, ist das schon ein String, oder muss noch einer draus gemacht werden?
Herzliche Grüsse und danke
Mario
-
Hallo Murus,
so geht es:
Code:
Y = &B11001100
M = &B00000001
For I = 1 To 8 Step 1
B = Y And M 'Inhalt von Y wird mit aktuellem Inhalt von M "UND"-verknüpft
If B > 0 Then 'Wenn Ergebnis in B größer als 0 ist, dann soll B = 1 sein
B = 1 'Wenn B=0 ist kann es so bleiben
End If
X(i) = B 'Der jeweiligen Array-position wird der Inhalt von B (0 oder 1) zugewiesen
Shift M , Left , 1 'Das Abfragebit in M wird um eine Stelle nach links verschoben
Next
Viele Grüße
Michael
-
"Bin" funzt wie "str", also string
*Tadel* "Help" lesen ! (Es führt kein and'rer Weg nach Küsnacht)
-
Aufpassen, Männer ! Je nach methode ist die Zieltabelle von
MSB-> LSB oder
LSB-> MSB
-
Hallo PicNick,
dann halt anders herum:
Code:
Y = &B11001100
M = &B10000000
For I = 1 To 8 Step 1
B = Y And M 'Inhalt von Y wird mit aktuellem Inhalt von M "UND"-verknüpft
If B > 0 Then 'Wenn Ergebnis in B größer als 0 ist, dann soll B = 1 sein
B = 1 'Wenn B=0 ist kann es so bleiben
End If
X(i) = B 'Der jeweiligen Array-position wird der Inhalt von B (0 oder 1) zugewiesen
Shift M , Right , 1 'Das Abfragebit in M wird um eine Stelle nach rechts verschoben
Next
Viele Grüße
Michael