www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bin zahl zerlegen bzw in dieser von pos bis pos suchen


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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? :)

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

That's what BASIC does to our kids...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.