Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 08.01.2006, 14:40 Titel: Auf Bit Ebene zugreifen |
|
|
hallo
ich hab n problem ..ich schreib nämlich grad n Programm in dem ich auf Bit -Ebene zugreifen will...also wenn zum beipiel in einer .txt datei "a" also
CHR$(97) also lautet das byte folgendermaßen: 01100001. Ein byte besteht aus 8 bits also 1 oder 0 (-> Dualsysystem) wie kann ich von QuickBASIC 4.5 aus auf die einzelnen bits zugreifen,sie anzeigen ,verändern und auslesen?
Danke im vorraus
grüße otti |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.01.2006, 15:09 Titel: |
|
|
Hallo
Befehle mit denen man Bits manipulieren kann wie in Assembler gibt es in QB nicht. Du kannst dir aber durch logische Verknüpfungen einzelne Bits herausfiltern. So bekommst du z.B. mit
variable AND 1
das erste Bit aus variable.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 08.01.2006, 15:28 Titel: |
|
|
Danke...dann werd ich mir mal n bissl assembler anschauen.
grüße otti |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 08.01.2006, 16:41 Titel: |
|
|
Servus.
Da brauchts kein Assembler für. Ließ doch erstmal das Byte, dass das interessante Bit enthält aus. Da kann man dann - je nach Belieben auf tausend verschiedene Weisen - das Bit auslesen, verändern, schreiben. Zurückschreiben geht genauso: Das Bit wieder in das zugehörigige Byte einpacken, an die richtige Stelle schreiben fertig aus.
pseudocode: Code: |
open "blablabla" for binary as #1
dim datei as string * lof(1)
get #1,,datei
byte$ = mid(datei,byteposition, 1)
bit = asc(byte$) and (2^bitposition)
print "das ";bitposition;"te bit in byte nummer ";byteposition;" hat den wert: ";bit
bit = 1 'setzten, manipulieren, was-weiß-ich...
byte$ = chr$(asc(byte) or (bit * 2^bitposition))
put #1,1+byteposition,byte$
'erledicht |
Gruß
Lutz Ifer |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 09.01.2006, 17:30 Titel: |
|
|
danke @all
@Lutz Ifer :sieht gut aus wär aber zu umständlich...
ich hab ne andere lösung,will aber des rad nicht 2mal erfinden
hätt irgendwer n prog da, des er mir geben könnt ,welches binär in dezimal un umgekehrt umwandeln kann..?
grüße otti |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 09.01.2006, 18:44 Titel: |
|
|
dez->bin
dezimal% = val("&b"+binär$)
bin->dez
binär$=bin(dezimal%)
/edit: Hups, sorry, war bei FB.. schau ma in die QB-MonsterFAQ, da gibts bestimmt schon was. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 09.01.2006, 22:57 Titel: |
|
|
ohh danke!
in zukunft werd ich noch mal nen genaueren Blick in meine Offline Version der QBMonFAQ werfen...
grüße otti |
|
Nach oben |
|
 |
|