Frage von DerTaugeNix, 127

Wie löse ich diese Python Aufgabe richtig?

Die Funktion ' maxIntZahl(nrBytes) ' bekommt als input eine Anzahl an Bytes 'nrBytes' als integer. Berechnen Sie die groesste ganze Zahl, die in dieser Anzahl Bytes abgespeichert werden kann. Zurueck gegeben werden soll: maxUnsigned ... groesste speicherbare integer Zahl wenn kein Vorzeichen gespeichert wird

z.B.: nrBytes = 1 print maxIntZahl(nrBytes) -> Ausgabe: 255

Also ichweiß zwar wie man zur Lösung kommt aber mein Problem ist, dass die Lösung rauskommt wenn man Print maxIntZahl eingibt. nrBytes=1 maxIntZahl=2**(nrBytes+8)-1 Wie muss ich das umändern? LG

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von ralphdieter, 91

Aha:

  1. Du hast die Aufgabe verstanden.
  2. Du hast eine Lösung programmiert.
  3. Du hast alles erfolgreich getestet.

Nun, die meisten Leute würden jetzt aufhören und zur nächsten Aufgabe gehen. Wo liegt Dein Problem?

Kommentar von DerTaugeNix ,

getestet wird die aufgabe mit:

class TestmaxIntZahl(unittest.TestCase):

def test1_unsigned(self):
nrBytes = 4
self.assertEqual(hw1.maxIntZahl(nrBytes),4294967295)

def test2_unsigned(self):
nrBytes = 2
self.assertEqual(hw1.maxIntZahl(nrBytes),65535)

if __name__ == '__main__':
unittest.main()


ich habe die aufgabe leider nicht gelöstet. bekomme darauf eine ERROR meldung. verstehe nicht wie ich es lösen muss damit es hier zu keinem error kommt

Kommentar von ralphdieter ,

Hast Du diese Funktion im Modul hw1 auch geschrieben, und das Modul importiert?

def maxIntZahl(nrBytes):
return 2**(nrBytes*8)-1

Was gibt denn

print hw1.maxIntZahl(3)

auf der Konsole aus?

Kommentar von DerTaugeNix ,

oh danke! kannte den return befehl noch nicht. klappt jetzt :)

Kommentar von ralphdieter ,
def gibHilfreichsteAntwort():
return "Danke fürs Sternle!"
Antwort
von DerTaugeNix, 88

(nrBytes*8) natürlich

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten