Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:bits-and-bytes:ueberraschende-rechnungen [2022/02/15 21:39] – [Überraschende Rechnungen] Olaf Schnürer | lehrkraefte:snr:informatik:bits-and-bytes:ueberraschende-rechnungen [2022/02/15 21:47] (current) – [Rechnen mit Kommazahlen] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Überraschende Rechnungen ====== | ||
| + | |||
| + | ===== Rechnen mit Uhrzeiten konkret ===== | ||
| + | |||
| + | |||
| + | <WRAP center round info> | ||
| + | Python bzw. Tigerjython passt auf, wenn die Zahlen zu gross werden, und kann mit recht grossen Zahlen rechnen. Beispielsweise läuft das folgende Programm problemlos: | ||
| + | <code python> | ||
| + | p = 1 | ||
| + | for a in range(36): | ||
| + | print(" | ||
| + | p *= 2 | ||
| + | </ | ||
| + | |||
| + | In vielen anderen Sprachen muss man aber aufpassen, beispielsweise in C, wie die folgende Box illustriert. | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | Unten folgt ein Programm in der Programmiersprache C, das zeigt, dass der Datentyp '' | ||
| + | |||
| + | Hier ist die Ausgabe des Programms (erster Block: Zweierpotenzen, | ||
| + | < | ||
| + | zwei hoch 0 ist 1 | ||
| + | zwei hoch 1 ist 2 | ||
| + | zwei hoch 2 ist 4 | ||
| + | zwei hoch 3 ist 8 | ||
| + | zwei hoch 4 ist 16 | ||
| + | zwei hoch 5 ist 32 | ||
| + | zwei hoch 6 ist 64 | ||
| + | zwei hoch 7 ist 128 | ||
| + | zwei hoch 8 ist 256 | ||
| + | zwei hoch 9 ist 512 | ||
| + | zwei hoch 10 ist 1024 | ||
| + | zwei hoch 11 ist 2048 | ||
| + | zwei hoch 12 ist 4096 | ||
| + | zwei hoch 13 ist 8192 | ||
| + | zwei hoch 14 ist 16384 | ||
| + | zwei hoch 15 ist 32768 | ||
| + | zwei hoch 16 ist 65536 | ||
| + | zwei hoch 17 ist | ||
| + | zwei hoch 18 ist | ||
| + | zwei hoch 19 ist | ||
| + | zwei hoch 20 ist 1048576 | ||
| + | zwei hoch 21 ist 2097152 | ||
| + | zwei hoch 22 ist 4194304 | ||
| + | zwei hoch 23 ist 8388608 | ||
| + | zwei hoch 24 ist | ||
| + | zwei hoch 25 ist | ||
| + | zwei hoch 26 ist | ||
| + | zwei hoch 27 ist 134217728 | ||
| + | zwei hoch 28 ist 268435456 | ||
| + | zwei hoch 29 ist 536870912 | ||
| + | zwei hoch 30 ist | ||
| + | zwei hoch 31 ist -2147483648 | ||
| + | zwei hoch 32 ist 0 | ||
| + | zwei hoch 33 ist 0 | ||
| + | zwei hoch 34 ist 0 | ||
| + | zwei hoch 35 ist 0 | ||
| + | |||
| + | 2147483647 | ||
| + | | ||
| + | | ||
| + | |||
| + | 32768 | ||
| + | 65536 | ||
| + | |||
| + | 1073741824 | ||
| + | | ||
| + | 0 | ||
| + | </ | ||
| + | |||
| + | <code c> | ||
| + | #include < | ||
| + | | ||
| + | int main() | ||
| + | { | ||
| + | int p = 1; | ||
| + | int a; | ||
| + | for (a = 0; a < 36; a = a + 1) { | ||
| + | printf(" | ||
| + | p = p * 2; | ||
| + | } | ||
| + | printf(" | ||
| + | |||
| + | /* 2 hoch 31 minus 1*/ | ||
| + | int x = 2147483647; | ||
| + | |||
| + | printf(" | ||
| + | printf(" | ||
| + | printf(" | ||
| + | printf(" | ||
| + | | ||
| + | /* 2 hoch 15 */ | ||
| + | int m = 32768; | ||
| + | |||
| + | /* 2 hoch 16 */ | ||
| + | int n = 65536; | ||
| + | |||
| + | printf(" | ||
| + | printf(" | ||
| + | |||
| + | printf(" | ||
| + | | ||
| + | printf(" | ||
| + | printf(" | ||
| + | printf(" | ||
| + | | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Rechnen mit Kommazahlen ===== | ||
| + | |||
| + | * **Achtung: Rechenfehler beim Rechnen mit Kommazahlen auf dem Computer!** (Da der Computer manchmal Nachkommastellen abschneidet, | ||
| + | |||
| + | <WRAP center round important> | ||
| + | <code python> | ||
| + | x = 0.1+0.2 | ||
| + | y = 0.3 | ||
| + | |||
| + | print(x) | ||
| + | print(y) | ||
| + | |||
| + | if x==y: | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Wie der Computer binäre Kommazahlen speichert ===== | ||
| + | |||
| + | siehe Grafik auf [[https:// | ||
| + | |||
| + | ===== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||