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 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));

Diagram znázorňující programovací funkce a možnosti robotického systému V5, zvýrazňující klíčové komponenty a jejich funkce v jasném a organizovaném uspořádání.


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í programovací vlastnosti robotického systému V5, zvýrazňující klíčové komponenty a jejich funkce.

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í programovací schopnosti robota V5, zobrazující různé senzory, motory a připojení pro efektivní kódování a ovládání.

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

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

Last Updated: