Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
fredyxx
Anmeldungsdatum: 26.01.2009 Beiträge: 22
|
Verfasst am: 26.01.2009, 21:42 Titel: alpha-Zeichen in Binärzahl umwandeln |
|
|
Hallo zusammen,
wie kann ich in QB 4.5 ein alphanummerisches Zeichen in eine Binärzahl verwandeln?
Danke _________________ vG
fredyxx |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 27.01.2009, 16:24 Titel: Re: alpha-Zeichen in Binärzahl umwandeln |
|
|
fredyxx hat Folgendes geschrieben: | Hallo zusammen,
wie kann ich in QB 4.5 ein alphanummerisches Zeichen in eine Binärzahl verwandeln?
Danke |
In eine Binärzahl gar nicht, nur in den ASCII-Code, mit ASC(x), wobei x für das Zeichen steht. Den Binärcode mußt Du Dir dann selbst ausrechnen. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 27.01.2009, 17:15 Titel: |
|
|
Hi,
geht nicht auch
Code: | Print BIN$(ASC("@")) | ? _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 27.01.2009, 17:19 Titel: |
|
|
Nein. BIN$ gibt es in qBasic nicht, nur in freeBasic.
http://www.freebasic-portal.de/index.php?s=reftopic&id=54
Soweit ich weiß, bietet qBasic keine fertige Möglichkeit, Binärzahlen darzustellen. Man muß sich also selbst was basteln. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 27.01.2009, 18:05 Titel: |
|
|
ach so..
na dann:
http://www.antonis.de/faq/progs/dec2bin1.bas _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
fredyxx
Anmeldungsdatum: 26.01.2009 Beiträge: 22
|
Verfasst am: 27.01.2009, 21:20 Titel: |
|
|
Hallo,
danke an euch beide!
ich dachte es ging einfacher, aber so komme ich auch klar.
 _________________ vG
fredyxx |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 27.01.2009, 21:43 Titel: |
|
|
Vorabbemerkung: Aufgabe müsste man präziser als "wie kann ich in QB 4.5 ein alphanummerisches Zeichen in einen String verwandeln, dessen Zeichen die Ziffern (Bits) vom ASCII-Wert im Binärsystem repräsentieren?" formulieren, weil speicherintern im RAM-Riegel befinden sich Deine Bits bereits! Egal ob als Byte in der Zeichenkette oder im Integerwert, wie ihn ASC() zurückliefert!
Sonst allgemein: QB bietet von Haus aus nur OCT$() und HEX$(), d.h. 8er- und 16er-System. Mit etwas Geschick (gute Übung!) solltest Du aber in der Lage sein, eine zu base_convert()
gleichwertige FUNCTION-Prozedur zu erstellen.
Tipp: "\" und "MOD" werden Deine wichtigsten Freunde und Helfer für so etwas werden! _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
fredyxx
Anmeldungsdatum: 26.01.2009 Beiträge: 22
|
Verfasst am: 29.01.2009, 00:01 Titel: |
|
|
Hallo,
falls es noch jemanden interessiert, ich habe das so gelöst:
Code: | SUB ZinBin
'wandelt Alphanummerisches Zeichen in 8-stellige Binärzahl um
'*** Zeich$: empfangenes Zeichen; AscZ%: ASCII-Zahl dieses Zeichens
'*** BZ$: 8-stellige Binärzahl z.B. "10011011"
DIM AscZ%
BZ$ = ""
AscZ% = ASC(Zeich$)
IF AscZ% - 128 >= 0 THEN
AscZ% = AscZ% - 128
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 64 >= 0 THEN
AscZ% = AscZ% - 64
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 32 >= 0 THEN
AscZ% = AscZ% - 32
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 16 >= 0 THEN
AscZ% = AscZ% - 16
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 8 >= 0 THEN
AscZ% = AscZ% - 8
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 4 >= 0 THEN
AscZ% = AscZ% - 4
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 2 >= 0 THEN
AscZ% = AscZ% - 2
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
IF AscZ% - 1 >= 0 THEN
AscZ% = AscZ% - 1
BZ$ = BZ$ + "1"
ELSE
BZ$ = BZ$ + "0"
END IF
END SUB |
Das ist evtl. nicht ganz elegant, aber es funktioniert! _________________ vG
fredyxx |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 29.01.2009, 01:59 Titel: |
|
|
Hallo,
du kannst das Ganze auch kürzer schreiben, etwa so:
Code: |
SUB ZinBin
'wandelt Alphanummerisches Zeichen in 8-stellige Binärzahl um
'*** Zeich$: empfangenes Zeichen
'*** BZ$: 8-stellige Binärzahl z.B. "10011011"
BZ$ = ""
FOR bit% = 7 TO 0 STEP -1
stellenwert% = 2 ^ bit%
BZ$ = BZ$ + CHR$((ASC(Zeich$) AND stellenwert%) \ stellenwert% + 48)
NEXT
END SUB
|
Ist etwas eleganter und funktioniert auch.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de !
Zuletzt bearbeitet von Skilltronic am 29.01.2009, 12:20, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
fredyxx
Anmeldungsdatum: 26.01.2009 Beiträge: 22
|
Verfasst am: 29.01.2009, 12:17 Titel: |
|
|
Hallo Skilltronic,
ja, so ähnlich hatte ich mir das auch vorgestellt, dann aber für mich die schnellere Version gewählt.
Danke, habe jetzt Deine übernommen
 _________________ vG
fredyxx |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
ensugo
Anmeldungsdatum: 15.01.2009 Beiträge: 3
|
Verfasst am: 31.01.2009, 19:08 Titel: |
|
|
etwas schneller:
Code: | DEFINT A-Z
FUNCTION ZinBin$ (Zeich$)
'wandelt Alphanummerisches Zeichen in 8-stellige Binärzahl um
'*** Zeich$: empfangenes Zeichen
'*** ZinBin$: 8-stellige Binärzahl z.B. "10011011"
AscZ% = ASC(Zeich$)
FOR b = 1 TO 8
IF (AscZ% AND 1) THEN
bin$ = "1" + bin$
ELSE
bin$ = "0" + bin$
END IF
AscZ% = AscZ% \ 2
NEXT
ZinBin$ = bin$
END FUNCTION
|
P.S. ist vielleicht zu spät, aber ich poste mal trotzdem. |
|
Nach oben |
|
 |
|