Variabelen maken voor gehele getallen in 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.

Typen die gehele getallen bevatten: char, short, int, long, long long

Laten we een paar voorbeelden bekijken:

char cvar = 50;
tekens cvar = 50;
korte svar = 50;
int ivar = 50;
lange lvar1 = 50;
lange lvar2 = 50;

Basis rekenkundige operatoren:

De meesten zijn bekend met de elementaire rekenkundige operatoren en de prioriteitsvolgorde: + , -, *, /

Hier zijn enkele voorbeelden van het gebruik van de Unary-operator: ++ en --:

Uitdrukking Gelijk aan Ook gelijkwaardig aan
cvar += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;

Pas op voor de variabele++ versus ++variabele!

++variabel

intx = 10, y = 20; 
X = ++y;

Let op: na deze bewerking: X = 21, en Y ook = 21.

variabele++

intx = 10, y = 20; 
X = y++;

Let op: na deze bewerking: X = 20, en Y = 21.


Vergelijk het gegevenstype geheel getal

Er is een groep of gegevenstype dat zowel positieve als negatieve waarden toestaat – ‘ondertekend’. U hoeft dit echter niet te specificeren, omdat dit impliciet is. Zie hieronder:

Data type Kleinste waarde Grootste waarde
verkoold -2 7 of -128 2 7 - 1 of 127
kort -2 15 of -32.768 2 15 - 1 of 32.767
int -2 31 of -2.147.483.648 2 31 – 1 of 2.147.483.647
lang -2 31 of -2.147.483.648 2 31 – 1 of 2.147.483.647
lang Lang -2 63 of -9.223.372.036.854.775.808 2 63 – 1 of 9.223.372.036.854.775.807

Er is een groep of gegevenstype dat alleen positieve waarden toestaat: ‘niet-ondertekend’.

Data type Kleinste waarde Grootste waarde
Ongetekend char 0 2 8 - 1 of 255
niet-ondertekende korte 0 2 16 - 1 of 65.535
niet ondertekend int 0 2 32 – 1 of 4.294.967.295
lang niet ondertekend 0 2 32 – 1 of 4.294.967.295
niet ondertekend lang lang 0 2 64 – 1 of 18.446.744.073.709.551.615

Hoe verifieer je de gegevensgrootte?

Voorlopig zou u de operator sizeof( ) moeten kennen. Dit levert de geheugenopslageenheid op die 'bytes' wordt genoemd, die in de volgende sectie enigszins zal worden behandeld.

Voorbeeld om u te vertellen hoeveel bytes u moet typen met de operator sizeof(). Probeer dit uit om ze zelf te verifiëren. Als u overstapt naar een andere controller, kunt u ter verificatie altijd het volgende doen.

Brain.Screen.setFont(fontType::mono30);    
Brain.Screen.printAt(1, 20,"char heeft %d bytes", sizeof(char));
Brain.Screen.printAt(1, 50,"kort heeft %d bytes", sizeof(kort)); 
Brain.Screen.printAt(1, 80,"int heeft %d bytes", sizeof(int));
Brain.Screen.printAt(1, 110, "lang heeft %d bytes", sizeof(lang));
Brain.Screen.printAt(1, 140, "lang lang heeft %d bytes", sizeof(lang lang));
Brain.Screen.printAt(1, 170, "float heeft %d bytes", sizeof(float));
Brain.Screen.printAt(1, 200, "dubbel heeft %d bytes", sizeof(dubbel));

vartypes.png


Wat betekent een byte?

Een “Byte” is een standaardeenheid voor gegevensopslag.

Eén byte = 8 bits. Eén bit is de kleinste geheugeneenheid die alleen de waarde 1s en 0s kan hebben (binaire waarde). Maar de kleinste geheugeneenheid die u van het systeem kunt verkrijgen is 1 byte; je kunt dus niet om 1,5 byte vragen, enz.

Laten we eens kijken naar Char. Het is kort genoeg om gemakkelijk weer te geven.

usignedchar.jpg

Als het allemaal gevuld is met 1-en, krijg je 28-1. Deze waarde zou de maximale waarde van “unsigned char” moeten zijn.

charvalues.jpg

Het systeem reserveert de hoogste orde bit om een ​​negatieve waarde te geven. De maximale waarde voor een “char” varieert dus van -128 tot 127. De capaciteit is echter nog steeds hetzelfde als bij “unsigned char” ondanks een verschil in het databereik.

In de computer gebruikt het een bewerking genaamd Two's Complement. Dit maakt deel uit van de onderwerpen onder Bitwise-bewerking, wat buiten het bestek van dit document valt. Meer over dit onderwerp zal in een ander document worden besproken.


Wat is het verschil tussen char en int?

Hier zijn enkele veel voorkomende toepassingen voor "char" en "int":

char var1 = '9'; 
intvar2 = 9;

Het is een veel voorkomende misvatting dat 'char' alleen symbolen kan bevatten zoals 'a', 'b' of '9'. Dat is onjuist.

In feite is het "char" type hetzelfde als het "int" type, behalve dat de capaciteit van char slechts 1 byte is, en de capaciteit van int 4 bytes. Het bereik van de gegevensgrootte is dus verschillend tussen de twee. U kunt dat zien in de tabel met gegevensbereiken hierboven.

De volgende codesegmenten geven u een duidelijker beeld van char en int.

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

  Brain.Screen.printAt(3, 20, "int representatie van '%c' =  %d",iX, iX);
  Brain.Screen.printAt(3, 50, "int representatie van '%c' =  %d",cX1, cX1);
  Brain.Screen.printAt(3, 80, "int representatie van '%c' =  %d",cX2, cX2);
  Brain.Screen.printAt(3, 140, "Dus '%c' - '%c' =  %d ", cX2, iX, cX2 - cX1);

Uitgang:

int representatie van '0' = 48
int representatie van '1' = 49
int representatie van '2' = 50

Dus '2' – '0' = 1

Je vraagt ​​je misschien af: waarom staat '0' voor 48?

Dit zal leiden tot de onderwerpen die “ASCII-code”-conversie worden genoemd. De ASCII-standaard is een geweldige IEEE-mijlpaal die in 1963 werd gepubliceerd. Dit valt buiten de reikwijdte van dit artikel. U wordt aangemoedigd om de ASCII-codetabel online op te zoeken. U vindt online een overvloed aan informatie over de ASCII-codetabel.

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

Last Updated: