Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Osignerade Datatyper | Andra Datatyper och Koncept
C++-Datatyper
close
Avsnitt 4. Kapitel 5
single

single

bookUtmaning: 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:

  • 0 om talet är icke-negativt;
  • 1 om 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

main.cpp

copy
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; }
Note
Notera

Dessutom finns det en signed typmodifierare tillgänglig för att ange att en datatyp kan hantera både positiva och negativa tal. Men alla numeriska datatyper är som standard signed, så det finns inget behov av 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 kommer inte att ge några fel, men det resulterande värdet blir felaktigt.

Uppgift

Swipe to start coding

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 unsigned int-parametrar och returnerar det uppdaterade lagersaldot utan att överskrida maxkapaciteten. Alla värden är unsigned eftersom negativa antal inte är möjliga.

  1. Kontrollera först om summan av stock och newStock överskrider maxCapacity.
  2. Om summan är större än maxCapacity, returnera maxCapacity för att undvika att överskrida gränsen.
  3. Om summan är mindre än eller lika med maxCapacity, returnera summan av stock och newStock.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt