Bascom Binäre Daten zusammensetzen

Gast #3107349
Lesenswert?

Hallo,

ich suche nach einer Möglichkeit mit Bascom aus 8 einzelnen 
Bit-Variablen eine Dezimalzahl zu erzeugen.

Z.B. Habe ich hier 8 Variablen A,B,C,D,E,F,G,H

A=1
B=0
C=0
D=0
E=1
F=1
G=0
H=0

Diese müsste ich zu einer Binärzahl zusammensetzen, damit ich diese dann 
mit Binval etc. in eine Dezimalzahl umwandeln kann. Bei diesem Beispiel 
wäre das Binär: 10001100 und entsprechend 140 in Dezimal.
#3107553
Lesenswert?

> ich suche nach einer Möglichkeit mit Bascom aus 8
> einzelnen Bit-Variablen eine Dezimalzahl zu erzeugen.

Man kann auch mal in die Gegenrichtung überlegen und sich mal fragen ob 
und warum diese 8 Variablen Bit-Variablen sein müssen bzw. ob es nicht 
einfacher wäre von Haus gleich eine Byte-Variable dafür zu benutzen.
Gast #3107669
Lesenswert?

Die Methode von pff funktioniert. Danke!

@KarlHeinz: Das sind 8 einzelne Statusbits. Und die Zusammen sollen 
einen Dezimalen (Error) Code ergeben. Den kann man dann gut in einem 
Display anzeigen lassen und dann vom Benutzer auswerten. Wenn ich da 
jetzt einfach bloß eine Zahlenfolge von 1en und 0en sehe kann da ein 
unerfahrener Benutzer wenig mit Anfangen.
Gast #3146700
Lesenswert?

Hallo,

ich hatte das selbe Problem, nämlich für einen gesamten Eingangsport mit 
8 Pins einen Gesamt-Wert geliefert zu bekommen zwischen 0 und 255.

Eure Lösung habe ich nicht kapiert, aber so ging es:

dim A ... H as Byte
dim C_gesamt as Byte

'Der gesamte Port C soll zu einem Byte zusammengefaßt werden
               A = pinc.0
               B = pinc.1 * 2
               C = pinc.2 * 4
               D = pinc.3 * 8
               E = pinc.5 * 16
               F = pinc.6 * 32
               G = pinc.7 * 64
               H = pinc.4 * 128
'leider kann man nicht A+B+C+D+E+F+G+H auf einmal addieren.
               C_gesamt = A + B
               C_gesamt = C_gesamt + C
               C_gesamt = C_gesamt + D
               C_gesamt = C_gesamt + E
               C_gesamt = C_gesamt + F
               C_gesamt = C_gesamt + G
               C_gesamt = C_gesamt + H
               Print "Port-Eingang C gesamt" ; C_gesamt

Gruß Tilmann
Gast #3146809
Lesenswert?

Idi schrieb:
> ubuntu schrieb:
>> warum man sich bascom antut...
>
> tut man wenn es nicht unbedingt und unvermeidlich C sein muß.

das muss nun wirklich nicht sein, es gibt bei weitem leistungsfähigere 
Alternativen zu Bascom. man muss also nicht zwangsweise C nehmen wenn 
man es nicht mag.

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