Skip to content

Musterlösung für Zahlenumrechnung #41

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
m-fehr opened this issue Apr 29, 2024 · 1 comment
Open

Musterlösung für Zahlenumrechnung #41

m-fehr opened this issue Apr 29, 2024 · 1 comment

Comments

@m-fehr
Copy link
Contributor

m-fehr commented Apr 29, 2024

Da weder im Script noch in der Musterlösung klar erklärt ist, wie die Umrechnung funktioniert, sollte eine Musterlösung vorhanden sein. Diese könnte folgendermaßen aussehen (leider werden in Github-Markdown die Farben ausgeblendet):

Musterlösung:

11110 -> ?2

Division durch 2 Quotient Rest #Bit
111/2 55 1 0
55/2 27 1 1
27/2 13 1 2
13/2 6 1 3
6/2 3 0 4
3/2 1 1 5
1/2 0 1 6

Jetzt muss man nur noch die vorletzte Spalte "Rest" von unten nach oben notieren

=> 11011112

Da wir eine 8-Bit Zahl benötigen müssen wir die Zahl jetzt vorne noch mit 0 auffüllen, bis wir 8 Zeichen haben.

=> 011011112

Alternativ:

11110 -> ?2

Alternativ kann man auch mit folgender Methode die Zahl umwandeln:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis

Ist 111 >= 128? Nein also tragen wir an dieser Stelle eine 0 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0

Jetzt zur nächsten Spalte:

Ist 111 >= 64? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1

Da das Ergebnis 1 war, müssen wir von 111 64 abziehen => 111-64= 47

Jetzt zur nächsten Spalte:

Ist 47 >= 32? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1

Wieder berechnen wir die Differenz => 47-32= 15

Jetzt zur nächsten Spalte:

Ist 15 >= 16? Nein also tragen wir an dieser Stelle eine 0 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1 0

Da keine 1 eingetragen wurde müssen wir keine Differenz berechnen.

Jetzt zur nächsten Spalte:

Ist 15 >= 8? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1 0 1

Wieder berechnen wir die Differenz => 15-8= 7

Jetzt zur nächsten Spalte:

Ist 8 >= 4? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1 0 1 1

Wieder berechnen wir die Differenz => 8-4= 3

Jetzt zur nächsten Spalte:

Ist 3 >= 2? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1 0 1 1 1

Wieder berechnen wir die Differenz => 3-2= 1

Jetzt zur nächsten Spalte:

Ist 1 >= 1? Ja also tragen wir an dieser Stelle eine 1 ein:

#Bit 7 6 5 4 3 2 1 0
2#Bit 128 64 32 16 8 4 2 1
Endergebnis 0 1 1 0 1 1 1 1

Wieder berechnen wir die Differenz => 3-2= 1

Damit erhalten wir ebenfalls:

=> 011011112

@TristanHehnen
Copy link
Contributor

Finde ich gut!
Da wir den Teil der hier als Alternative bezeichnet ist genutzt hatten, ist es vielleicht gut die beiden Teile zu tauschen. Weiterhin macht es vielleicht auch Sinn die Uebungsaufgaben anzupassen um auch die Modulo-Version vorzustellen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants