FireDynamics / FireDynamics/LectureComputerScience

Musterlösung für Zahlenumrechnung

未关闭
#41 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Jupyter Notebook
星标
3
派生
8
PR 合并指标
30 天内没有已合并 PR

描述

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

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。