binär rechner?

Hanibal545  05.09.2022, 17:03

Kannst du vielleicht dein bisheriger Code zur Verfügung stellen?

Michi123170 
Fragesteller
 05.09.2022, 17:06

nur mal ne frage wie man das ERKENNT das in einer variable

ne halbe zahl steht

Hanibal545  05.09.2022, 17:10

Das kommt gerad darauf an,wie du es implementieren möchtest.Wenn du's mit der Binärfunktion von Python machst muss man es anders machen,als wenn man es mit Stringmanipulation macht

Michi123170 
Fragesteller
 05.09.2022, 17:12

eingentlich will ich nur wissen wie ich erkenne wen ein . oder .5 in einer variable vorkommt

2 Antworten

Zuerst solltest du im den Datentyp von Int (Integer) auf Float ändern. In diesem Typ können auch Gleitkommazahlen gespeichert werden.

Deine Input Funktion gibt dir erstmal ein String zurück. Diese parst (umwandeln) du aktuell in ein Integer um. Falls eine 2.5 eingegeben wurde, erhälst du eine 2 zurück. Nach dem . wird alles abgeschnitten. Es wird nicht gerundet.

float_number = float(input("Eingabe: "))

Mit einer einfachen If Abfrage könntest du überprüfen, ob eine Ganze Zahl eingegeben wurde oder auch nicht.

if int(float_number) == float_number:
  pass

Im ersten Abschnitt des If wollen wir bewusst den Teil hinter dem . abschneiden. Wenn der Ausdruck True ist, wurde eine ganze Zahl eingeben. 1.0 (float) entspricht in Python auch 1 (integer).

Wenn eine 1.5 eingegeben wurde, ist 1.5 und 1 nicht gleich und es wird False zurückgegeben.

Diese Abfrage würde auch 1.1 oder 1.9 abfangen.

Falls du die Dezimalstellen haben möchtest, kannst du den Modulo Operator nutzen, der bereits von Hanibal545 angesprochen wurde.

float_number = 2.5
a = float_number % 1 # ergibt 0.5

Wenn du wirklich nur auf 0.5 abfragen möchtest, könntest du jetzt den Rest mit 0.5 vergleichen.

if a == 0.5:
  pass
Michi123170 
Fragesteller
 07.09.2022, 15:15

echt hilfreich danke mal schauen obs funktionirt

0

Ich weiß zwar nicht, ob es dir hilft, aber man kann z.B. so schauen, ob ein Komma in einem String enthalten ist oder nicht.

number_1 = input("Geben sie die erste Binärzahl ein ")
number_2 = input("Geben sie die zweite Binärzahl ein ")

if "." in number_1:
    pass

if "." in number_2:
    pass

ergebnis = bin(int(number_1,base=2) + int(number_2,base=2))

print(ergebnis)

Ich kann es so bestimmen, aber wenn du genauere Hilfe haben möchtest, wie man das Komma in die Binärzahl einbinden kann, dann bräuchte ich dein Code um zu schauen, wie du es implementieren möchtest

LG

Woher ich das weiß:eigene Erfahrung
Michi123170 
Fragesteller
 05.09.2022, 17:38

warum geht das nicht

zahl = int(input("bitte zahl eingeben:"))
zahl /= 2
if "." in zahl :
   print(". ist enthalten")
if not "." in zahl :
   print(". ist nicht enthaltem")
1
Hanibal545  05.09.2022, 17:47
@Michi123170

Weil es nur mit einem String geht. Wenn du schauen möchtest, ob wenn man durch 2 teilt eine Kommazahl rauskommt kann man es mit dem Modulus-Opperator machen.

zahl = int(input("bitte zahl eingeben:"))

if zahl % 2 == 0:
   print(". ist nicht enthalten")
else:
   print(". ist enthaltem")
   
zahl /= 2
0
Hanibal545  05.09.2022, 17:50
@Michi123170

oder mit:

zahl = int(input("bitte zahl eingeben:"))

if zahl /2 == int(zahl/2):
   print(". ist nicht enthalten")
else:
   print(". ist enthaltem")

zahl /= 2
0
Hanibal545  05.09.2022, 17:56
@Michi123170

oder mit:

zahl = int(input("bitte zahl eingeben:"))
zahl /= 2
temp = str(zahl).split(".")[1]

if temp != "0":
   print(". ist enthalten")
else:
   print(". ist nicht enthaltem")

Es gibt viele Möglichkeiten

0
Hanibal545  05.09.2022, 18:34
@Michi123170

Der Modulus-Operator funktioniert so, dass man den Restwert von einer Division bekommt. Also wenn man 5 Modulo(%) 2 macht bekommt man 2 Rest 1 raus. Und die 1 wird dann nach der Modulo Operation ausgegeben. Wenn es kein Rest gibt (also 0), konnte man die Zahl durch die andere Zahl ohne einen Restwert dividieren.

https://codeasy-content.s3.eu-central-1.amazonaws.com/Chapters/f12284ad-3a17-4c8e-9167-0642ef9acab4/Assets/modulus.png

https://i.stack.imgur.com/03s5V.png

https://stackoverflow.com/questions/17524673/understanding-the-modulus-operator

https://www.geeksforgeeks.org/what-is-a-modulo-operator-in-python/

Ich hoffe ich konnte dir helfen und wenn du noch weitere Fragen hast, dann kannst du mich einfach fragen

0