single
Challenge: Osignerade Datatyper
Svep för att visa menyn
För att representera ett tal i det binära systemet är det nödvändigt att lagra både dess värde och tecken. En bit är avsatt för att lagra tecknet, medan de återstående bitarna används för att lagra det numeriska värdet. Teckenbiten lagrar:
0om talet är icke-negativt;1om talet är negativt.
Om vi är säkra på att vår variabel endast kan innehålla icke-negativa tal kan vi använda typmodifieraren unsigned. Denna modifierare möjliggör lagring av värden utan att ta hänsyn till tecknet.
Dessutom, tack vare det ökade minnesutrymmet för att lagra värdet, är intervallet av möjliga värden bredare; dock ingår inte negativa tal i detta intervall. Därför är de tillåtna intervallen följande:
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; }
Dessutom finns det en typmodifierare signed som anger att en datatyp kan hantera både positiva och negativa tal. Men alla numeriska datatyper är som standard signed, så det är inte nödvändigt att ange det uttryckligen.
Använd endast unsigned när variabeln inte kan anta negativa värden.
Att tilldela ett negativt värde till en unsigned-variabel ger inga felmeddelanden, men det resulterande värdet blir felaktigt.
Svep för att börja koda
Du hanterar ett lagerhanteringssystem. Varje lager har en maxkapacitet, och du vill säkerställa att tillägg av nytt lager inte överskrider denna gräns.
Funktionen addStock tar tre parametrar av typen unsigned int och returnerar det uppdaterade lagersaldot utan att överskrida maxkapaciteten. Alla värden är unsigned eftersom negativa antal inte är möjliga.
- Kontrollera först om summan av
stockochnewStocköverskridermaxCapacity. - Om summan är större än
maxCapacity, returneramaxCapacityför att undvika att överskrida gränsen. - Om summan är mindre än eller lika med
maxCapacity, returnera summan avstockochnewStock.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal