Seite 1 von 1
Binär Rechner
Verfasst: Donnerstag 28. Oktober 2010, 19:58
von Cibanes
Hallo Zusammen
Bin neu hier im Forum und würde euch gerne was frage.
Habe nun einen Binär in Dezimal rechner programmiert das heisst:
man gibt eine zahl im bin code ein zb 1101 und mein programm gibt dann zb
8
4
1
Aus. wie kann ich jetzt diese Zahlen vom programm speichern lassen und zusammenrechnen lassen? habe ein while loop drin wo ich die werte schreibe. Hättet ihr mir vileicht einen lösungsansatz?
Gruss
Re: Binär Rechner
Verfasst: Donnerstag 28. Oktober 2010, 20:06
von DaMutz
vielleicht hilft dir das weiter

:
Code: Alles auswählen
In [1]: int('1101', 2)
Out[1]: 13
In [2]: zahl = int('1101', 2)
In [3]: resultat = zahl + zahl
In [4]: resultat
Out[4]: 26
In [5]: bin(resultat)
Out[5]: '0b11010'
In [6]: bin(resultat)[2:]
Out[6]: '11010'
In [7]: 0b1101
Out[7]: 13
Re: Binär Rechner
Verfasst: Donnerstag 28. Oktober 2010, 20:10
von DrFaust
Das ist ohne deinen Code schwer zu sagen. Vor der while-Schleife eine 'sum'-Variable auf 0 initialisieren und in jeder Iteration den Wert addieren? Was meinst du mit speichern? In einer Datei? Dann öffne vorher eine Datei:
und schreibe in jeder Iteration die Zahl raus:
Code: Alles auswählen
my_file.write(my_number) #evtl. muss um my_number noch ein str()
und schließlich die Datei schließen:
Etwas eleganter wäre diese Variante:
Code: Alles auswählen
my_list = []
while ...:
...
my_list.append(my_number) #wieder ggf. mit str() drum
my_file = open("my_file_name","w")
my_file.writelines(my_list)
my_file.close()
Dann kannst du die Liste auch gleich noch zum aufsummieren verwenden:
Re: Binär Rechner
Verfasst: Donnerstag 28. Oktober 2010, 21:18
von Cibanes
Also mein Code sieht so aus, bin kein programiere und hab erst grad angefangen vorner Woche mit python

also ned lachen!
Also:
def bin(x):
y=len(str(x))
h=y-1
while h >= 0:
i=x/10**h
if i == 1:
a=2**h
print a
x=x-10**h
h=h-1
y=y-1
if i == 0:
h=h-1
y=y-1
y >=0 #restart the loop
if h == 0:
print 'ende'
pass
am schluss krieg ich
bei bin(1101)
8
4
1
geprintet und ich will nur das das mein programm die 8 und 4 und 1 schnell zusammen rechnet

ist sicher einfach aber ich komm nicht weiter.
Re: Binär Rechner
Verfasst: Donnerstag 28. Oktober 2010, 22:38
von DrFaust
hab erst grad angefangen vorner Woche mit python

also ned lachen!
Würde ich nie.

Dennoch ein paar Kommentare dazu:
- Es gibt ein Python-Code-Environment in diesem Forum. Einfach Code markieren und den 'Python'-Knopf über dem Editorfenster drücken. Achte bitte außerdem darauf, dass die Einrückung erhalten bleibt. Es ist hart zu Raten was noch zur Schleife gehört und was zur if Abfrage etc.
- Ich hatte erwartet, dass die Eingabe ein string wäre, aber man kann das auch so machen.
- Könnte man aus h und y nicht eine Variable machen. Das würde den Code lesbarer machen.
- Zeile y >=0 verstehe ich nicht. Das ist ein boolean-Ausdruck, der aber so keinen Effekt hat. Sollte da vielleicht auch ein if stehen?
- Was macht das pass am Ende?
Zu deiner Frage: Ich kann das erst mit Sicherheit sagen, wenn ich die reparierte Version des Codes habe, aber auf den ersten Blick würde ich sagen, dass was ich oben geschrieben habe passt.
Code: Alles auswählen
...
h=y-1
sum = 0
while h >= 0:
i=x/10**h
if i == 1:
a=2**h
print a
sum += a
x=x-10**h
...
sum würde dann am Schleifen-Ende das Ergebnis enthalten.