Skapa variabler för heltal i 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.

Typer som innehåller heltal: char, short, int, long, long long

Låt oss ta en titt på några exempel:

char cvar = 50;
char cvar = 50;
kort svar = 50;
int ivar = 50;
långa lvar1 = 50;
långa lvar2 = 50;

Grundläggande aritmetiska operatorer:

De flesta är bekanta med de grundläggande aritmetiska operatorerna och prioritetsordningen: + , -, *, /

Här är några exempel på hur man använder Unary-operatorn: ++ och --:

Uttryck Motsvarande Även likvärdig med
cvar += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;

Se upp för variabeln++ kontra ++variabeln!

++variabel

heltal x = 10, y = 20; 
X = ++y;

Obs: efter denna operation: X = 21, och Y också = 21.

variabel++

heltal x = 10, y = 20; 
X = y++;

Obs: efter denna operation: X = 20 och Y = 21.


Jämför heltalsdatatyp

Det finns en grupp eller datatyp som tillåter både positiva och negativa värden – ”signerad”. Du behöver dock inte specificera det eftersom det är implicit. Se nedan:

Datatyp Minsta värde Största värde
röding -2 7 eller -128 2 7 - 1 eller 127
kort -2 15 eller -32 768 2 15 - 1 eller 32 767
int -2 31 eller -2 147 483 648 2 31 – 1 eller 2 147 483 647
lång -2 31 eller -2 147 483 648 2 31 – 1 eller 2 147 483 647
lång lång -2 63 eller -9 223 372 036 854 775 808 2 63 – 1 eller 9 223 372 036 854 775 807

Det finns en grupp eller datatyp som endast tillåter positivt värde – ”unsigned”.

Datatyp Minsta värde Största värde
osignerat tecken 0 2 8 - 1 eller 255
osignerad kortslutning 0 2 16 - 1 eller 65 535
osignerad heltal 0 2 32 – 1 eller 4 294 967 295
osignerad lång 0 2 32 – 1 eller 4 294 967 295
osignerad lång lång 0 2 64 – 1 eller 18 446 744 073 709 551 615

Hur verifierar man datastorleken?

För tillfället bör du känna till operatorn sizeof(). Detta tillhandahåller minneslagringsenheten som kallas "bytes" – vilket kommer att behandlas något i nästa avsnitt.

Exempel som visar hur många byte som ska skrivas med operatorn sizeof(). Testa detta för att verifiera dem själv. Om du byter till en annan handkontroll kan du alltid göra följande för att verifiera.

Brain.Screen.setFont(fontType::mono30);    
Brain.Screen.printAt(1, 20,"char har %d byte", sizeof(char));
Brain.Screen.printAt(1, 50,"short har %d byte", sizeof(short)); 
Brain.Screen.printAt(1, 80,"int har %d byte", sizeof(int));
Brain.Screen.printAt(1, 110, "lång har %d byte", sizeof(lång));
Brain.Screen.printAt(1, 140, "lång lång har %d byte", sizeof(lång lång));
Brain.Screen.printAt(1, 170, "flytande har %d byte", sizeof(flytande));
Brain.Screen.printAt(1, 200, "double har %d byte", sizeof(double));

Diagram som illustrerar programmeringsfunktionerna och kapaciteten hos V5-robotsystemet, med framhävning av viktiga komponenter och deras funktioner i en tydlig och organiserad layout.


Vad betyder en byte?

En "byte" är en standardenhet för datalagring.

En byte = 8 bitar. En bit är den minsta minnesenheten som bara kan ha värdet 1s och 0s (binärt värde). Men den minsta minnesenheten du kan få från systemet är 1 byte; så du kan inte begära 1,5 byte, etc.

Låt oss ta en titt på char. Den är tillräckligt kort för att enkelt kunna visas.

Diagram som illustrerar programmeringsfunktionerna i V5-robotsystemet, med framhävning av viktiga komponenter och deras funktioner.

Om allt är fyllt med ettor får du 28-1. Detta värde bör vara det maximala värdet som "unsigned char" bör innehålla.

Diagram som illustrerar V5-robotens programmeringsmöjligheter och visar olika sensorer, motorer och anslutningar för effektiv kodning och styrning.

Systemet reserverar bit av högsta ordningen för att ge ett negativt värde. Således varierar det maximala värdet för ett "char" från -128 till 127. Kapaciteten är dock fortfarande densamma som för "unsigned char" trots en skillnad i dataintervallet.

I datorn använder den en operation som kallas tvåkomplementet. Detta är en del av ämnena under Bitvis drift, vilket ligger utanför ramen för detta dokument. Mer om detta ämne kommer att diskuteras i ett annat dokument.


Vad är skillnaden mellan char och int?

Här är några vanliga användningsområden för "char" och "int":

char variabel1 = '9'; 
int variabel2 = 9;

Det är en vanlig missuppfattning att "char" bara kan innehålla symboler som 'a', 'b' eller '9'. Det är felaktigt.

Faktum är att typen "char" är densamma som typen "int", förutom att chars kapacitet bara är 1 byte och ints kapacitet är 4 byte. Således skiljer sig datastorleksintervallet mellan de två. Du kan se det i dataintervallstabellen ovan.

Följande kodsegment ger dig en tydligare bild av char och int.

int iX = '0';
  char cX1 = 49;
  char cX2 = 50; 

  Brain.Screen.printAt(3, 20, "int representation av '%c' =  %d", iX, iX);
  Brain.Screen.printAt(3, 50, "int representation av '%c' =  %d", cX1, cX1);
  Brain.Screen.printAt(3, 80, "int representation av '%c' =  %d", cX2, cX2);
  Brain.Screen.printAt(3, 140, "Så '%c' - '%c' =  %d ", cX2, iX, cX2 - cX1);

Produktion:

int-representation av '0' = 48
int-representation av '1' = 49
int-representation av '2' = 50

Så '2' – '0' = 1

Du kanske undrar: Varför visar '0' 48?

Detta kommer att leda till ämnen som kallas konvertering av "ASCII-kod". ASCII-standarden är en viktig milstolpe inom IEEE som publicerades 1963. Detta ligger utanför ramen för den här artikeln. Du uppmanas att söka upp ASCII-kodtabellen online. Du hittar en mängd information online om ASCII-kodtabeller.

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

Last Updated: