single
Uitdaging: Unsigned Gegevenstypen
Veeg om het menu te tonen
Om een getal in het binair systeem weer te geven, moeten zowel de waarde als het teken worden opgeslagen. Eén bit is gereserveerd voor het opslaan van het teken, terwijl de overige bits worden gebruikt voor de numerieke waarde. Het tekenbit slaat op:
0als het getal niet-negatief is;1als het getal negatief is.
Als we zeker weten dat onze variabele alleen niet-negatieve getallen kan bevatten, kunnen we de unsigned type-modificator gebruiken. Deze modificator maakt het mogelijk om waarden op te slaan zonder rekening te houden met het teken.
Bovendien is het bereik van mogelijke waarden groter door het extra geheugen dat beschikbaar is voor de waarde; negatieve getallen vallen echter buiten dit bereik. De toegestane bereiken zijn daarom als volgt:
main.cpp
12345678910#include <iostream> int main() { unsigned int total_vehicles = 1446000000; unsigned short age = 21; std::cout << total_vehicles << std::endl; std::cout << age << std::endl; }
Daarnaast is er een signed type-modificator beschikbaar om aan te geven dat een gegevenstype zowel positieve als negatieve getallen kan bevatten. Maar alle numerieke gegevenstypen zijn standaard signed, dus het is niet nodig dit expliciet te specificeren.
Gebruik unsigned alleen wanneer de variabele geen negatieve getallen kan bevatten.
Het toewijzen van een negatieve waarde aan een unsigned variabele levert geen fouten op, maar de resulterende waarde zal onjuist zijn.
Swipe to start coding
Je beheert een magazijnvoorraadsysteem. Elk magazijn heeft een maximale capaciteit, en je wilt ervoor zorgen dat het toevoegen van nieuwe voorraad deze limiet niet overschrijdt.
De functie addStock neemt drie unsigned int-parameters en retourneert de bijgewerkte magazijnvoorraad zonder de maximale capaciteit te overschrijden. Alle waarden zijn unsigned omdat negatieve aantallen niet mogelijk zijn.
- Controleer eerst of de som van
stockennewStockdemaxCapacityoverschrijdt. - Als de som groter is dan
maxCapacity, geef danmaxCapacityterug om overschrijding te voorkomen. - Als de som kleiner dan of gelijk aan
maxCapacityis, geef dan de som vanstockennewStockterug.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.