single
Haaste: 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
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; }
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.
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.
- Tarkista ensin, ylittääkö
stockjanewStocksummamaxCapacity. - Jos summa on suurempi kuin
maxCapacity, palautamaxCapacityrajan ylittämisen estämiseksi. - Jos summa on pienempi tai yhtä suuri kuin
maxCapacity, palautastockjanewStocksumma.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme