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 | Ekvivalentní k | Také Ekvivalent k |
|---|---|---|
| cvar += 5; | cvar = cvar + 5; | |
| ++cvar; | cvar++; | cvar = cvar + 1; |
| --cvar; | cvar--; | cvar = cvar - 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:
| Typ dat | 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 |
| int | -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 |
| dlouhý dlouhý | -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é“.
| Typ dat | Nejmenší hodnota | Největší hodnota |
|---|---|---|
| nepodepsaný char | 0 | 2 8 - 1 nebo 255 |
| nepodepsaný krátký | 0 | 2 16 - 1 nebo 65 535 |
| nepodepsaný int | 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 has %d bytes", sizeof(char)); Brain.Screen.printAt(1, 50,"short has %d bytes", sizeof(short)); Brain.Screen.printAt(1, 80,"int má %d bajtů", sizeof(int)); Brain.Screen.printAt(1, 110, "long has %d bytes", sizeof(long)); Brain.Screen.printAt(1, 140, "long long has %d bytes", sizeof(long long)); Brain.Screen.printAt(1, 170, "float má %d bajtů", sizeof(float)); Brain.Screen.printAt(1, 200, "dvojitý má %d bajtů", sizeof(double));
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 var1 = '9'; int var2 = 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'; znaků cX1 = 49; znak cX2 = 50; Brain.Screen.printAt(3, 20, "int reprezentace '%c' = %d",iX, iX); Brain.Screen.printAt(3, 50, "int reprezentace '%c' = %d",cX1, cX1); Brain.Screen.printAt(3, 80, "int reprezentace '%c' = %d",cX2, cX2); Brain.Screen.printAt(3, 140, "Tak '%c' - '%c' = %d ", cX2, iX, cX2 - cX1);
Výstup:
int reprezentace '0' = 48 int reprezentace '1' = 49 int 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ů.