Integer Variable Zerlegen

Gast #1494914
Lesenswert?

Hab mal eine Frage...

Ich habe eine Zahl in einer Integer Variable gespeichert:

100111

jetzt möchte ich folgendes:

wenn der wert

0000001 ist dann port b1=1 alle anderen aus

0000011 ist dann portb1=1 und portb.2=1 alle anderen aus

0001001 port b1=1 und portb4=1 alle anderen aus


wie kann ich das realisieren? hoffe versteht was ich meine würde integer 
einfach zerlegen in jede einzelne zifer dann weiss ich welscher port an 
und welscher aus muss aber weiss ja nicht ob das geht...
Gast #1494928
Lesenswert?

also ich lasse eine zahl hochzählen


schleife:
dim test as integer
test=test+1

goto schleife

jetzt müsste er doch so hochzählen oder?

1
10
11
100
101
110
111

usw...

eben bínär

jetzt habe ich 6 ports portc.0 bis portc.5

wenn test=1 portc.0=1 alles andere aus
wenn test=10 dann portc.1=1 alles andere aus
wenn test=11 dann portc.1=1 portc.0=1

usw...

hoffe versteht was ich meine^^
#1494936
Lesenswert?

Hi,

du hast
port b1=1
portb1=1
portb.2=1
port b1=1
portb4=1

zig verschiedene Schreibweisen, was du meinst weißt nur du.

warum legst du einen Integer an, wenn du nur 5,6 Bits brauchst?

klassisch fängt man bei Portb0 an, und nicht bei 1.

portb=intvar&0xFF; //wenn du die unteren 8 Bit direkt auf den Portb 
kopiert haben willst

portb=((intvar<<1)&0xFE)|(portb&0x01); //wenn das unterste bit aus der 
Integer Variablen auf Portb1 liegen soll, geht dann bis Portb7.

Thorsten
Gast #1494941
Lesenswert?

danke mit den beitrag von klaus habe ich es hinbekommen ;-)

habe jetzt also so gemacht:

dim test as integer
test=0

schleife:
test=test+1
if test=111111 then test=0
portc=test
waitms 1000
goto schleife

klappt wundewrbar ;-)
#1494953
Lesenswert?

Maurice schrieb:
> danke mit den beitrag von klaus habe ich es hinbekommen ;-)
>
> habe jetzt also so gemacht:
>
> dim test as integer
> test=0
>
> schleife:
> test=test+1
> if test=111111 then test=0

Das testet aber auf die Dezimalzahl 111111, nicht auf das Bitmuster 
111111.


> portc=test
> waitms 1000
> goto schleife
>
> klappt wundewrbar ;-)
#1494957
Lesenswert?

Maurice schrieb:
> nur eine kleine frage habe ich noch, wie kann man schieben? also wenn
> ich sagen wir nicht port 0-5 belegt habe sondern 1-5 z.b??

ich kenne dein BASIC nicht (weiß nicht mal welches es ist).

Mal die Doku lesen? Stichwort "um eine Stelle nach links schieben",
oder "bit shiften" o.s.ä.

Notfalls geht auch multiplizieren mit 2, aber sowas sagt man nicht 
öffentlich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren