Vytváření proměnných pro celá čísla ve VEXcode Pro V5

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.

Diagram znázorňující nepodepsaný znak s 8 bity označenými od 7 do 0 a odpovídajícími hodnotami od 128 do 1, s příklady výpočtu hodnot 136 a 255.

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“.

Diagram znázorňující datový typ char se 7 bity hodnoty a jedním rezervovaným bitem znaménka, včetně příkladů výpočtu hodnot −120 a 127.

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ů.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: