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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.