Binärsytem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Hummelpups

Betreff: Binärsytem

BeitragDo, Aug 19, 2004 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag, da meine Freundin nun 11. Klasse
macht und Informatik gewählt hat habe ich mir
auch wieder mal sorgen übers Binärsystem, Heyzahlen
und so weiter sorgen gemacht. Kann mir einer sagen,
wie ich Binäre Zahlen durch eine Rechnung in dezimalzahlen
verwandle oder muss ich das wirklich abzählen so wie ich
es hier unten gemacht habe? Subtraktion und so ist ja
nicht soo das Problem. Sehts euch einfach mal an.

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

1111 (15)
1010 (10)
____ -
0101 (5)

BiZaR

rambo256

BeitragDo, Aug 19, 2004 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Also binär in dezimal geht so:
die letzte stelle steht immer für 2^0
dann geht das immer so weiter,die vorletzte für 2^1,die davor 2^2,usw.
Wenn man dann z.b. eine Binärzahl hat:
0 1 0 1 dann wird das so gemacht:
2^3 2^2 2^1 2^0

0 + 4 + 0 + 1 = 5
Asus F53z

Das Leben ist eine reine Konkatenation...

DivineDominion

BeitragDo, Aug 19, 2004 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, in gewisser Weise "abzählen", ja...
Du weißt ja, dass sich, je weiter die 1 nach links rückt, der Wert zur Stelle weiter rechts verdoppelt. gibt da bestimmt eine Rechnung für, den Dezimalwert der Stelle zu errechnen. Schon rumprobiert oder bei Google nach einer Formel gesucht?


Edit: Zu spät Smile
christian.tietze@gmail.com - https://christiantietze.de
macOS
 

Ballermann99

BeitragDo, Aug 19, 2004 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte vor kurzem nen Lehrgang da haben wir das auch noch mal gemacht.

Zitat:
Von links ausgehend multipliziert man die erste Stelle der Dualzahl mit 2, addiert die nächste Stelle (0 oder 1) und multipliziert wieder mit 2 usw.


Beispiel:

10101

1*2=2
2+0=2
2*2=4
4+1=5
5*2=10
10+0=10
10*2=20
20+1=21

10101 entspricht also 21.

Gruß Ballermann99

Sebastian

BeitragDo, Aug 19, 2004 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir ne function gecodet die die Zahlen umwandelt ......

Hummelpups

BeitragDo, Aug 19, 2004 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
und in meiner is noch nen Fehler drin, den ich nich finde -.-

Code: [AUSKLAPPEN]
Graphics 800,600,16,2

Dim tmp_zahl(100)

Print "[1] Binär nach Dezimal"

Repeat
   If KeyHit(2) Then eingabe=Input("Binärstring eingeben: "):Print binaer_dezimal(eingabe):Exit
Until KeyHit(1)

Function binaer_dezimal(tmp_String)
   Print "Umwandlung beginnt..."
   stringlength=Len(tmp_string)
   Print "Länge des Strings: "+stringlength
   
   For steps=1 To stringlength-1
      tmp_zahl(steps)=Mid(tmp_string,steps,1)
   Next

   For steps=stringlength-1 To 1 Step -1
      tmp=tmp+(tmp_zahl(stringlength-steps)*2)^steps
   Next

   Return tmp
End Function

Holzchopf

Meisterpacker

BeitragDo, Aug 19, 2004 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... den Fehler find' ich auch grad nicht, liegt aber daran, dass ich geistig ziemlich müde bin, im Moment...

Aber das hier funktioniert:
Code: [AUSKLAPPEN]

Graphics 800,600,16,2

Dim tmp_zahl(100)

Print "[1] Binär nach Dezimal"

Repeat
   eingabe=Input("Binärstring eingeben: ")
   Print binaer_dezimal(eingabe)
Until KeyHit(1)
End

Function binaer_dezimal(tmp_String)
   Print "Umwandlung beginnt..."
   stringlength = Len(tmp_string)
   Print "Länge des Strings: "+stringlength
   
   For steps = stringlength To 1 Step -1
      tmp = tmp + Int(Mid( tmp_String, steps, 1 )) * ( 2 ^ ( stringlength - steps ) )
   Next

   Return tmp
End Function


Du musst einfach das Bit multiplizieren - und zwar mit 2 hoch (Stelle - 1)Wink
Zum besseren Verständnis, hier die Multiplikationstabelle:
Code: [AUSKLAPPEN]

256  128   64   32   16    8    4    2    1 
2^8  2^7  2^6  2^5  2^4  2^3  2^2  2^1  2^0


In der oberen Reihe die Faktoren und unten, wie man logisch und schnell zu den Faktoren kommt.

MfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Sebastian

BeitragDo, Aug 19, 2004 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine funtz so ählich .........
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf !
 

Ballermann99

BeitragDo, Aug 19, 2004 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,16,2

Print "[1] Binär nach Dezimal"

Repeat
   eingabe=Input("Binärstring eingeben: "):Print binaer_dezimal(eingabe)
Until KeyHit(1)

Function binaer_dezimal(tmp_String$)
   Print "Umwandlung beginnt..."
   str_len = Len(tmp_string$)
   Print "Länge des Strings: " + str_len
   
   For i = 1 To str_len
      If i = str_len Then
         tmp = (tmp + Int(Mid(tmp_String$, i, 1))) ; Nach der letzten Stelle kommt keine weitere. Deshalb nicht mal 2 rechnen
      Else
         tmp = (tmp + Int(Mid(tmp_String$, i, 1)))*2
      End If
   Next
   
   Return tmp
End Function


So würde die Methode funzen, die ich oben beschrieben hab.
In BB kannst du Binärzahlen auch direkt umwandeln. Du musst nur ein % vor den Wert schreiben. Funzt aber glaub ich nicht mit Variablen.

Gruß Ballermann99

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group