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 Gelijkwaardig aan Ook gelijk aan
cvar += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;

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

++variabel

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

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

variabele++

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

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


Vergelijk integer-gegevenstype

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:

Gegevenstype Kleinste waarde Grootste waarde
char -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’.

Gegevenstype Kleinste waarde Grootste waarde
niet-ondertekend teken 0 2 8 - 1 of 255
ongesigneerd kort 0 2 16 - 1 of 65.535
niet-ondertekend geheel getal 0 2 32 – 1 of 4.294.967.295
ongesigneerd lang 0 2 32 – 1 of 4.294.967.295
ongesigneerd lang lang 0 2 64 – 1 of 18.446.744.073.709.551.615

Hoe verifieert u de datagrootte?

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 has %d byte", sizeof(char));
Brain.Screen.printAt(1, 50, "short has %d bytes", sizeof(short)); 
Brain.Screen.printAt(1, 80, "int has %d bytes", 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 has %d bytes", sizeof(float));
Brain.Screen.printAt(1, 200, "double has %d bytes", sizeof(double));

Tekst afgedrukt op het V5 Brain-scherm:

char heeft 1 byte
short heeft
bytes, int heeft
bytes, long heeft
bytes, long heeft 8 bytes
float heeft 4 bytes
double heeft 8 bytes.

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.

Diagram dat een unsigned char met 8 bits toont, gelabeld van 7 tot 0, met corresponderende waarden van 128 tot 1, en voorbeelden van het berekenen van de waarden 136 en 255.

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

Diagram dat het gegevenstype char weergeeft met 7 waardebits en één gereserveerde tekenbit, inclusief voorbeelden van het berekenen van de waarden −120 en 127.

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'; 
int var2 = 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';
  char cX1 = 49;
  char cX2 = 50; 

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

Uitgang:

De integerrepresentatie van '0' = 48
De integerrepresentatie van '1' = 49
De integerrepresentatie 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: