Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Numeriska Datatyper | Variabler och Datatyper
Introduktion till C++
course content

Kursinnehåll

Introduktion till C++

Introduktion till C++

1. Komma Igång
2. Introduktion till Operatorer
3. Variabler och Datatyper
4. Introduktion till Programflöde
5. Introduktion till Funktioner

book
Numeriska Datatyper

Heltal

Heltalsdatatyper är de mest använda för heltal. Datatypen int kan hålla värden inom intervallet -2,147,483,648 till 2,147,483,647.

cpp

main

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }

Det händer eftersom när du deklarerar en int-variabel, allokerar den exakt 4 byte av din dators minne. Och tal över 2147483647 (eller under -2147483648) får inte plats inom dessa 4 byte. Lyckligtvis finns det andra datatyper tillgängliga som kan allokera mer (eller mindre) utrymme för dina behov. Här är tabellen:

Data Type
Range
Size
short
-32,768 to 32,767
2 bytes
int
-2,147,483,648 to 2,147,483,647
4 bytes
long
-9223372036854775808 to 9223372036854775807
8 bytes

Så du kan använda long för att lagra stora tal (t.ex. världens befolkning). Du kan också använda short om du är säker på att ditt tal inte kommer att överstiga -32,768 till 32,767 intervallet (t.ex. lagra en användares ålder). Att använda short kommer att ta upp mindre minnesutrymme.

cpp

main

copy
123456789101112
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }

Notera

Var försiktig med den datatyp du väljer. Om intervallet för en typ överskrids, kommer C++-kompilatorn inte att meddela dig, och du kan få ett oväntat värde utan någon indikation på ett fel.

Flyttal

Datatyperna ovan är utformade för att lagra heltal. Om vi försökte tilldela 1.6 till en av dessa, här är vad vi skulle få:

cpp

main

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

Typen int trunkerar den decimala delen av ett tal. Detta beteende är detsamma för typerna short och long. För att lagra flyttal (decimaltal) bör du använda antingen datatypen float eller double.

Datatyp
Precision
Storlek
float
7 decimal digits
4 bytes
double
15 decimal digits
8 bytes

Här är ett exempel på att använda double för att lagra 1.6.

cpp

main

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }

Notera

Eftersom typen float endast har en precision på sju siffror, är numret 123.456789 redan utanför dess räckvidd. Det kan leda till felaktiga resultat (som visas i exemplet nedan). Så det är bättre att använda double som standard om du inte är säker på att float's precision är tillräcklig.

Självklart kan du använda float eller double för att lagra heltal eftersom dessa är decimaltal med en decimaldel lika med 0. Men som en god praxis, om en variabel lagrar värden som endast kan vara heltal (t.ex. befolkning eller likes), bör short/int/long användas.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand
ChatGPT

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

course content

Kursinnehåll

Introduktion till C++

Introduktion till C++

1. Komma Igång
2. Introduktion till Operatorer
3. Variabler och Datatyper
4. Introduktion till Programflöde
5. Introduktion till Funktioner

book
Numeriska Datatyper

Heltal

Heltalsdatatyper är de mest använda för heltal. Datatypen int kan hålla värden inom intervallet -2,147,483,648 till 2,147,483,647.

cpp

main

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }

Det händer eftersom när du deklarerar en int-variabel, allokerar den exakt 4 byte av din dators minne. Och tal över 2147483647 (eller under -2147483648) får inte plats inom dessa 4 byte. Lyckligtvis finns det andra datatyper tillgängliga som kan allokera mer (eller mindre) utrymme för dina behov. Här är tabellen:

Data Type
Range
Size
short
-32,768 to 32,767
2 bytes
int
-2,147,483,648 to 2,147,483,647
4 bytes
long
-9223372036854775808 to 9223372036854775807
8 bytes

Så du kan använda long för att lagra stora tal (t.ex. världens befolkning). Du kan också använda short om du är säker på att ditt tal inte kommer att överstiga -32,768 till 32,767 intervallet (t.ex. lagra en användares ålder). Att använda short kommer att ta upp mindre minnesutrymme.

cpp

main

copy
123456789101112
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }

Notera

Var försiktig med den datatyp du väljer. Om intervallet för en typ överskrids, kommer C++-kompilatorn inte att meddela dig, och du kan få ett oväntat värde utan någon indikation på ett fel.

Flyttal

Datatyperna ovan är utformade för att lagra heltal. Om vi försökte tilldela 1.6 till en av dessa, här är vad vi skulle få:

cpp

main

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

Typen int trunkerar den decimala delen av ett tal. Detta beteende är detsamma för typerna short och long. För att lagra flyttal (decimaltal) bör du använda antingen datatypen float eller double.

Datatyp
Precision
Storlek
float
7 decimal digits
4 bytes
double
15 decimal digits
8 bytes

Här är ett exempel på att använda double för att lagra 1.6.

cpp

main

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }

Notera

Eftersom typen float endast har en precision på sju siffror, är numret 123.456789 redan utanför dess räckvidd. Det kan leda till felaktiga resultat (som visas i exemplet nedan). Så det är bättre att använda double som standard om du inte är säker på att float's precision är tillräcklig.

Självklart kan du använda float eller double för att lagra heltal eftersom dessa är decimaltal med en decimaldel lika med 0. Men som en god praxis, om en variabel lagrar värden som endast kan vara heltal (t.ex. befolkning eller likes), bör short/int/long användas.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
Vi beklagar att något gick fel. Vad hände?
some-alt