This repository has been archived by the owner on Feb 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: adjust anzahl maschinenzahlen
- Loading branch information
Showing
3 changed files
with
16 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,21 @@ | ||
def anz_verschied_maschinZahlen(basis, mantisse, exponent, vorzeichen_exp): | ||
""" | ||
Funktion zum Berechnen der Anzahl verschiedener Maschinenzahlen in einem numerischen System. | ||
return basis ** (mantisse) * (basis ** (exponent + vorzeichen_exp) - 1) + 1 | ||
|
||
:param basis: Basis des Zahlenformats, z.B. 10 für dezimales, 2 für binäres System. | ||
:param mantisse: Anzahl der Stellen in der Mantisse. Die effektive Länge der Mantisse ist `mantisse - 1`, | ||
wenn ein hidden bit berücksichtigt wird. | ||
:param exponent: Anzahl der Stellen im Exponententeil des Formats. | ||
:param vorzeichen_exp: Gibt an, ob der Exponent ein Vorzeichen hat. 0 für nein, 1 für ja. | ||
|
||
:return: Gibt die Gesamtzahl der verschiedenen Maschinenzahlen zurück, die in dem spezifizierten | ||
numerischen Format dargestellt werden können. Dies umfasst alle Kombinationen von Mantisse, | ||
Exponent und Vorzeichen (falls vorhanden). | ||
######################################################################################## | ||
|
||
Die Berechnung basiert auf der Formel: | ||
basis^(mantisse - 1) * (basis^(exponent + vorzeichen_exp) - 1) + 1 | ||
Hierbei wird die Anzahl der möglichen Werte für die Mantisse und den Exponenten (inklusive Vorzeichen) berechnet. | ||
Das zusätzliche +1 berücksichtigt den Fall der Darstellung der Zahl Null. | ||
""" | ||
return basis ** (mantisse) * (basis ** (exponent + vorzeichen_exp) - 1) + 1 | ||
# Basis | ||
basis = 2 | ||
|
||
# Anzahl Stellen für Mantisse | ||
mantisse_stellen = 15 | ||
|
||
# Anzahl Stellen für Exponent | ||
exponent_stellen = 5 | ||
|
||
if __name__ == "__main__": | ||
# Beispiel aus Prüfung FS20 Aufgabe 1a) | ||
# Vorzeichen (Ja = 1, Nein = 0) | ||
vorzeichen = 1 | ||
|
||
anzahl = anz_verschied_maschinZahlen(2, 15, 5, 1) | ||
print(anzahl) | ||
print( | ||
anz_verschied_maschinZahlen(basis, mantisse_stellen, exponent_stellen, vorzeichen) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters