The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Typy, které obsahují celá čísla: char, short, int, long, long long
Podívejme se na několik příkladů:
char cvar = 50;
char cvar = 50;
krátký svar = 50;
int ivar = 50;
dlouhé lvar1 = 50;
dlouhé lvar2 = 50;
Základní aritmetické operátory:
Většina zná základní aritmetické operátory a pořadí priority: + , -, *, /
Zde je několik příkladů použití unárního operátoru: ++ a --:
| Výraz | Ekvivalent k | Také ekvivalentní |
|---|---|---|
| cvar += 5; | cvar = cvar + 5; | |
| ++proměnná; | cvar++; | proměnná = proměnná + 1; |
| --proměnná; | čvar--; | proměnná = proměnná - 1; |
Pozor na proměnnou++ vs. ++proměnná!
++ proměnná
int x = 10, y = 20;
X = ++y;
Poznámka: po této operaci: X = 21 a Y také = 21.
variabilní++
int x = 10, y = 20;
X = y++;
Poznámka: po této operaci: X = 20 a Y = 21.
Porovnejte celočíselný datový typ
Existuje skupina nebo datový typ, který umožňuje kladnou i zápornou hodnotu – „podepsané“. Nemusíte to však uvádět, protože je to implicitní. Viz. níže:
| Datový typ | Nejmenší hodnota | Největší hodnota |
|---|---|---|
| char | -2 7 nebo -128 | 2 7 - 1 nebo 127 |
| krátký | -2 15 nebo -32 768 | 2 15 - 1 nebo 32 767 |
| celé číslo | -2 31 nebo -2 147 483 648 | 2 31 – 1 nebo 2 147 483 647 |
| dlouho | -2 31 nebo -2 147 483 648 | 2 31 – 1 nebo 2 147 483 647 |
| dlouho dlouho | -2 63 nebo -9 223 372 036 854 775 808 | 2 63 – 1 nebo 9 223 372 036 854 775 807 |
Existuje skupina nebo datový typ, který umožňuje pouze kladnou hodnotu – „nepodepsané“.
| Datový typ | Nejmenší hodnota | Největší hodnota |
|---|---|---|
| nepodepsaný znak | 0 | 2 8 - 1 nebo 255 |
| nepodepsaný krátký | 0 | 2 16 - 1 nebo 65 535 |
| nepodepsané celé číslo | 0 | 2 32 – 1 nebo 4 294 967 295 |
| nepodepsaný dlouhý | 0 | 2 32 – 1 nebo 4 294 967 295 |
| nepodepsané dlouhé dlouhé | 0 | 2 64 – 1 nebo 18 446 744 073 709 551 615 |
Jak ověřujete velikost dat?
Prozatím byste měli znát operátor sizeof(). To poskytuje paměťovou úložnou jednotku nazvanou „bajty“ – které se budeme trochu věnovat v další části.
Ukázka, která vám řekne, kolik bajtů byste měli zadat pomocí operátoru sizeof(). Vyzkoušejte to, abyste si je ověřili sami. Pokud přejdete na jiný ovladač, můžete vždy provést následující ověření.
Brain.Screen.setFont(fontType::mono30);
Brain.Screen.printAt(1, 20,"char má %d bajt", sizeof(char));
Brain.Screen.printAt(1, 50,"short má %d bajty", sizeof(short));
Brain.Screen.printAt(1, 80,"int má %d bajtů", sizeof(int));
Brain.Screen.printAt(1, 110, "long má %d bajtů", sizeof(long));
Brain.Screen.printAt(1, 140, "long long má %d bajtů", sizeof(long long));
Brain.Screen.printAt(1, 170, "float má %d bajtů", sizeof(float));
Brain.Screen.printAt(1, 200, "double má %d bajtů", sizeof(double));
Text vytištěný na obrazovce V5 Brain:
char má 1 bajt
short má 2 bajty
int má 4 bajty
long má 4 bajty
long long má 8 bajtů
float má 4 bajty
double má 8 bajtůCo znamená byte?
„Byte“ je standardní jednotka pro ukládání dat.
Jeden bajt = 8 bitů. Jeden bit je nejmenší paměťová jednotka, která může mít pouze hodnotu 1s a 0s (binární hodnota). Ale nejmenší jednotka paměti, kterou můžete získat ze systému, je 1 bajt; takže nemůžete požádat o 1,5 bajtu atd.
Pojďme se podívat na char. Je dostatečně krátký, aby se dal snadno zobrazit.
Pokud je vše vyplněno 1s, dostanete 28-1. Tato hodnota by měla být maximální hodnotou, kterou by měl mít „unsigned char“.
Systém si vyhrazuje bit nejvyššího řádu , aby mohl poskytnout zápornou hodnotu. Maximální hodnota pro „char“ se tedy pohybuje od -128 do 127. Kapacita je však stále stejná jako u „nepodepsaného znaku“ navzdory rozdílu v rozsahu dat.
V počítači používá operaci zvanou Doplňování dvojky. Toto je část témat v rámci operace Bitwise, která je mimo rozsah tohoto dokumentu. Více na toto téma bude probráno v jiném dokumentu.
Jaký je rozdíl mezi char a int?
Zde jsou některá běžná použití pro „char“ a „int“:
char proměnná1 = '9';
int proměnná2 = 9;
Je běžnou mylnou představou, že „char“ může obsahovat pouze symboly jako „a“, „b“ nebo „9“. To je nesprávné.
Ve skutečnosti je typ „char“ stejný jako typ „int“, kromě toho, že kapacita char je pouze 1 bajt a kapacita int je 4 bajty. Rozsah velikosti dat se tedy mezi těmito dvěma liší. Můžete to vidět v tabulce rozsahů dat výše.
Následující segmenty kódu vám poskytnou jasnější pohled na znaky char a int.
int iX = '0';
char cX1 = 49;
char cX2 = 50;
Brain.Screen.printAt(3, 20, "celotřichá reprezentace '%c' = %d",iX, iX);
Brain.Screen.printAt(3, 50, "celotřichá reprezentace '%c' = %d",cX1,cX1);
Brain.Screen.printAt(3, 80, "celotřichá reprezentace '%c' = %d",cX2,cX2);
Brain.Screen.printAt(3, 140, "Takže '%c' - '%c' = %d ",cX2,iX,cX2 - cX1);
Výstup:
celočíselná reprezentace '0' = 48
celočíselná reprezentace '1' = 49
celočíselná reprezentace '2' = 50
Takže '2' – '0' = 1
Možná se divíte: Proč '0' ukazuje 48?
To povede k tématům nazvaným konverze „kódu ASCII“. Standard ASCII je jedním ze skvělých milníků IEEE zveřejněných v roce 1963. To je mimo rámec tohoto článku. Doporučujeme vám vyhledat tabulku ASCII kódů online. Na internetu najdete nepřeberné množství informací o tabulce ASCII kódů.