bin zahl zerlegen bzw in dieser von pos bis pos suchen

Gast #727885
hallo

habe zwar in Bascom die möglichkeit gefunden in einem string ab pos x zu 
suchen, aber leider aber leider nichts gefunden wie man den string 
zerlegen kann

a1=&b01000000
a2=&b01010001
a2=&b01010010
a2=&b01010011
b=001
ich möchte das er zb. aus a1 mit b verglichen wird ob die letzten 3 
zeichen gleich sind wenn ja dann soll er mir die zeichenvon pos 4 und 
pos 5 ausgeben
@ gast (Gast)

>suchen, aber leider aber leider nichts gefunden wie man den string
>zerlegen kann

MID()

>a1=&b01000000
>a2=&b01010001
>a2=&b01010010
>a2=&b01010011
>b=001
>ich möchte das er zb. aus a1 mit b verglichen wird ob die letzten 3
>zeichen gleich sind wenn ja dann soll er mir die zeichenvon pos 4 und
>pos 5 ausgeben

Das sind aber Binärzahlen, keine Strings.

MFG
Falk
Falk Brunner wrote:
> @ gast (Gast)
>
>>suchen, aber leider aber leider nichts gefunden wie man den string
>>zerlegen kann
>
> MID()

Falk wird langsam zum Bascom spezialisten :)

> Das sind aber Binärzahlen, keine Strings.

Was er möchte sind vermutlich logische Verknüpfungen. Gibts sowas auch 
in Bascom? :)
Gast
ok stimmt das es binärzahlen sind, aber wenn ich damit arbeite ist es 
sicher einfacher als string diese anzugeben und zu verändern und später 
als binäre zahl zu definire um sie als als i2c adr. zu verwenden.

oder sehe ich das falsch?
gast wrote:
> ok stimmt das es binärzahlen sind, aber wenn ich damit arbeite ist es
> sicher einfacher als string diese anzugeben und zu verändern und später
> als binäre zahl zu definire um sie als als i2c adr. zu verwenden.
>
> oder sehe ich das falsch?

Das siehst du falsch.

Es ist sicher nicht einfacher eine Zahl zuerst in einen String
zu wandeln um dann mit Stringfunktionen rum zumachen.

Beispiel: Man möchte eine 2-stellige Zahl in die einzelnen
Ziffern zerlegen.
Ein bischen Nachdenken über das was man in der Grundschulzeit
gelernt hat, liefert

  Zehner = Zahl / 10
  Einer = Zahl - ( 10 * Zehner )

also einfach nur ein bischen Rechnerei. Und wenn Computer
etwas wirklich gut können, dann ist das rechnen.

AUs demselben Grund gibt es auch die binären Operationen
und und oder, die in BASCOM wahrscheinlich AND bzw. OR
heissen.

  Zahl1 = a1 AND &b00000111

zu schreiben um aus a1 die untersten 3 Bit in eine neue
Variable zu extrahieren, dürfte bedeutend einfach sein,
als da mit Strings rumzumachen.
Gast
im endefekt geht es um eine audio steuerung

4x Stereo Eingang

&b010 für eingang
dann 00 <- der wert mus geändert werden steht in 4 stufen kann 
lautstärke angepasst werden
dann 000 oder 001 oder 010 oder 011 adresse des audioeingangs

das ganze gibts dann noch einam für bass trable und für jeden der 4 
ausgänge(LF,RF,LR,RR)

und dafür wollte ich eine reglung erstellen
@ gast (Gast)

>&b010 für eingang
>dann 00 <- der wert mus geändert werden steht in 4 stufen kann
>lautstärke angepasst werden
>dann 000 oder 001 oder 010 oder 011 adresse des audioeingangs

Das ganze ist schlichte Bitmanipulation. Geht in BASCOM fast so wie 
in C.

Siehe Handbuch, Language Fundamentals, Logic Operators.

Zum Schieben gibts in BASCOM einen extra Befehl. SHIFT (Hear, Hear)

MFG
Falk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.