-         

Ergebnis 1 bis 6 von 6

Thema: ich brauche sowas wie ein bit array

  1. #1

    ich brauche sowas wie ein bit array

    Anzeige

    hi

    für eine kleine laufschrift habe ich ein programm in dem ich mehrere längere strings verwende in denen allerdings nur nullen oder einsen stehen also in etwa so

    dim bla as string * 100

    bla = "10010010001101010 ... usw"

    ich würde viel lieber einfach folgendes schreiben dürfen

    dimbla as bit * 100

    nur leider lässt mich Bascom nicht. und wenn ich string verwende verschenke ich doch so viel speicher, das ein string doch 8bit pro zeichen verbraucht wo ich doch eigendlich mit einem bit genug hätte. wie komme ich also zu meinem bit-array??

    vielen dank

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    auf ein einzelnse bit in einer variabel kannst du folgendermassen zugreifen:

    dim bla as byte

    bla.0 --> erstes Bit
    bla.1 --> zweites Bit
    .
    .
    bla.7 --> achtes Bit

    gruss bluesmash

  3. #3
    danke für deine schnelle antwort. nur leider bringt sie mich nicht wirklich weiter. ich weiss, dass wenn ich eine variable als byte deklariere sozusagen ein bit-array der länge 8 habe aber mich interessieren viel größere längen so ~200.
    was auch nicht in frage kommt ist ein array aus bytes in dem ich dann jedes byte und seine acht bit einzeln abklapper, denn die langen ketten aus nullen und einsen lasse ich von einem anderen programm generieren und füge sie dann erst in Bascom ein.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    wo is das Problem?
    Ein Byte ist ja nix anderes als alle Kombinationen aus 0 und 1 in 8 Stellen.
    Du kannst sehr wohl anstelle von &B00001010 in einem Array einfach 10 schreiben.
    Oder auch Hexadezimal für 16 Bit (dann Variable als Word dimmen): &H0000000000001010

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Is nicht das schnellste, sowas schreit eigentlich nach assembler
    Code:
    dim byte_array(200) as byte    ' reicht für 1600 bit
    dim arr_index as word
    dim bit_pos as byte
    dim counter as word
    
    ' alle Bit setzen  (zum Beispiel) 
    
      for counter = 0 to 1599   ' 200 * 8 -> 1600 Bit , also 0 - 1599
    
         arr_index = counter / 8       ' 
         arr_index = arr_index + 1   ' Bascom fängt tabellen mit 1 an 
         bit_pos = counter AND &H0F   ' 
         byte_array(arr_index).bit_pos  = 1      ' ein Bit setzen 
      next
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    vielen dank für die antworten ich habe die sache nochmal genauer unter die lupe genommen und werde das ganze in nächster zeit mal in assembler probieren

    gruß thomas

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •