Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

alpha-Zeichen in Binärzahl umwandeln

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fredyxx



Anmeldungsdatum: 26.01.2009
Beiträge: 22

BeitragVerfasst am: 26.01.2009, 21:42    Titel: alpha-Zeichen in Binärzahl umwandeln Antworten mit Zitat

Hallo zusammen,

wie kann ich in QB 4.5 ein alphanummerisches Zeichen in eine Binärzahl verwandeln?

Danke
_________________
vG

fredyxx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 27.01.2009, 16:24    Titel: Re: alpha-Zeichen in Binärzahl umwandeln Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 27.01.2009, 17:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 27.01.2009, 17:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 27.01.2009, 18:05    Titel: Antworten mit Zitat

ach so.. mit den Augen rollen

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fredyxx



Anmeldungsdatum: 26.01.2009
Beiträge: 22

BeitragVerfasst am: 27.01.2009, 21:20    Titel: Antworten mit Zitat

Hallo,

danke an euch beide!

ich dachte es ging einfacher, aber so komme ich auch klar.

lächeln
_________________
vG

fredyxx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 27.01.2009, 21:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fredyxx



Anmeldungsdatum: 26.01.2009
Beiträge: 22

BeitragVerfasst am: 29.01.2009, 00:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 29.01.2009, 01:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fredyxx



Anmeldungsdatum: 26.01.2009
Beiträge: 22

BeitragVerfasst am: 29.01.2009, 12:17    Titel: Antworten mit Zitat

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

happy
_________________
vG

fredyxx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.01.2009, 23:20    Titel: Antworten mit Zitat

Inzwischen auch noch eine Version ergänzt:

http://beilagen.dreael.ch/QB/BASECONV.BAS

=> Ist eine einfache base_convert()-Implementation für QB, welche die Umwandlung für beliebige Zahlensysteme erlaubt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ensugo



Anmeldungsdatum: 15.01.2009
Beiträge: 3

BeitragVerfasst am: 31.01.2009, 19:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz