Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Etumerkittömät Tietotyypit | Muut Tietotyypit ja Käsitteet
C++ Tietotyypit
Osio 4. Luku 5
single

single

bookHaaste: Etumerkittömät Tietotyypit

Pyyhkäise näyttääksesi valikon

Jotta luku voidaan esittää binäärijärjestelmässä, täytyy tallentaa sekä sen arvo että etumerkki. Yksi bitti varataan etumerkin tallentamiseen, kun taas loput bitit tallentavat numeerisen arvon. Etumerkkibitti tallentaa:

  • 0, jos luku on epänegatiivinen;
  • 1, jos luku on negatiivinen.

Jos tiedämme, että muuttuja voi sisältää vain epänegatiivisia lukuja, voimme käyttää unsigned-tyyppimuunninta. Tämä muunnin mahdollistaa arvojen tallentamisen ilman etumerkkiä.

Lisäksi, koska enemmän muistia on käytettävissä arvon tallentamiseen, mahdollisten arvojen vaihteluväli on laajempi; kuitenkin negatiiviset luvut eivät kuulu tähän vaihteluväliin. Sallitut vaihteluvälit ovat seuraavat:

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
Huomio

Lisäksi on olemassa signed-tyyppimuunnin, joka ilmaisee, että tietotyyppi voi sisältää sekä positiivisia että negatiivisia lukuja. Kaikki numeeriset tietotyypit ovat kuitenkin oletuksena signed, joten sitä ei tarvitse määritellä erikseen.

Käytä unsigned-määrettä vain, kun muuttuja ei voi saada negatiivisia arvoja.
Negatiivisen arvon asettaminen unsigned-muuttujaan ei aiheuta virhettä, mutta tuloksena oleva arvo on virheellinen.

Tehtävä

Swipe to start coding

Hallitset varastonhallintajärjestelmää. Jokaisella varastolla on enimmäiskapasiteetti, ja haluat varmistaa, ettei uuden varaston lisääminen ylitä tätä rajaa.

Funktio addStock ottaa kolme unsigned int -parametria ja palauttaa päivitetyn varaston määrän ylittämättä enimmäiskapasiteettia. Kaikki arvot ovat unsigned, koska negatiivisia määriä ei voi olla.

  1. Tarkista ensin, ylittääkö stock ja newStock summa maxCapacity.
  2. Jos summa on suurempi kuin maxCapacity, palauta maxCapacity rajan ylittämisen estämiseksi.
  3. Jos summa on pienempi tai yhtä suuri kuin maxCapacity, palauta stock ja newStock summa.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt