Hierna moet je de levensondersteuning-status controleren, door de zuurstofgenerator-status te vermenigvuldigen met de CO2-schrobber-status.

Zowel de zuurstofgenerator-status als de CO2-schrobber-status zijn waarden die je rechtstreeks in het diagnostisch rapport kunt vinden - het vinden ervan is het lastigste deel. Beide waarden moeten met een gelijkaardig procedure gevonden worden, dat neerkomt op het filteren van de waarden totdat er maar één overblijft. Voor je naar één van de status-waarden begint te zoeken, begin je steeds met de volledige reeks van alle binaire getallen uit het diagnostisch rapport en kijk je in eerste instantie enkel naar het eerste bit van dit getallen. Daarna:

Het bit-criterium hangt af van het soort status-waarde dan je wilt vinden:

Dit is bijvoorbeeld hoe je de zuurstofgenerator-status bepaalt voor het diagnostisch rapport dat we hiervoor als voorbeeld gebruikt hebben:

Daarna bepalen we de CO2-schrobber-status voor hetzelfde voorbeeld als hiervoor:

Om ten slotte de levensondersteuning-status te vinden, vermenigvuldigen we de zuurstofgenerator-status (23) met de CO2-schrobber-status (10), en zo krijgen we 230.

Opgave

Gebruik de binaire getallen uit het diagnostisch rapport om de zuurstofgenerator-status en de CO2-schrobber-status te berekenen, en vermenigvuldig ze vervolgens met elkaar. Wat is de levensondersteuning-status van de onderzeeër? (Zorg ervoor dat je het resultaat als een decimaal getal teruggeeft, niet als een binair getal.) Bepaal dit op de volgende manier:

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat de tekstbestanden report01.txt1 en report02.txt2 zich in de huidige directory bevinden.

>>> life_support_rating('report01.txt')
230
>>> life_support_rating('report02.txt')
4203981