Erstellen von Variablen für Ganzzahlen in VEXcode Pro V5

Typen, die ganze Zahlen enthalten: char, short, int, long, long long

Schauen wir uns einige Beispiele an:

Zeichen-Cvar = 50;
char cvar = 50;
kurzes svar = 50;
int ivar = 50;
long lvar1 = 50;
long lvar2 = 50;

Grundlegende arithmetische Operatoren:

Die meisten sind mit den grundlegenden arithmetischen Operatoren und der Rangfolge vertraut: + , -, *, /

Hier sind einige Beispiele für die Verwendung des Unary-Operators: ++ und --:

Ausdruck Gleichwertig Auch äquivalent zu
cvar += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;
Vorsicht vor der Variable++ vs. ++Variable!

++variabel

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

Hinweis: nach dieser Operation: X = 21 und Y auch = 21.

variabel++

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

Hinweis: nach diesem Vorgang: X = 20 und Y = 21.


Vergleichen Sie den ganzzahligen Datentyp

Es gibt eine Gruppe oder einen Datentyp, der sowohl positive als auch negative Werte zulässt – „signed“. Sie müssen dies jedoch nicht angeben, da dies implizit ist. Siehe unten:

Datentyp Kleinster Wert Größter Wert
verkohlen -2 7 oder -128 2 7 - 1 oder 127
kurz -2 15 oder -32.768 2 15 - 1 oder 32.767
int -2 31 oder -2.147.483.648 2 31 – 1 oder 2.147.483.647
lang -2 31 oder -2.147.483.648 2 31 – 1 oder 2.147.483.647
lang Lang -2 63 oder -9.223.372.036.854.775.808 2 63 – 1 oder 9.223.372.036.854.775.807

Es gibt eine Gruppe oder einen Datentyp, der nur positive Werte zulässt – „unsigned“.

Datentyp Kleinster Wert Größter Wert
unsigniertes Zeichen 0 2 8 - 1 oder 255
unsigned short 0 2 16 - 1 oder 65.535
unsigned int 0 2 32 – 1 oder 4.294.967.295
lange nicht signiert 0 2 32 – 1 oder 4.294.967.295
unsigniert lang lang 0 2 64 – 1 oder 18.446.744.073.709.551.615

Wie überprüfen Sie die Datengröße?

Vorläufig sollten Sie den Operator sizeof( ) kennen. Dies stellt die Speichereinheit namens „Bytes“ bereit – die im nächsten Abschnitt etwas behandelt wird.

Beispiel, um Ihnen die Anzahl der Bytes mitzuteilen, die mit dem Operator sizeof()eingegeben werden sollten. Probieren Sie dies aus, um sie selbst zu überprüfen. Wenn Sie zu einem anderen Controller wechseln, können Sie jederzeit Folgendes tun, um dies zu überprüfen.

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

vartypes.png


Was bedeutet ein Byte?

Ein „Byte“ ist eine Standardeinheit der Datenspeicherung.

Ein Byte = 8 Bit. Ein Bit ist die kleinste Speichereinheit, die nur den Wert 1er und 0er (Binärwert) annehmen kann. Die kleinste Speichereinheit, die Sie vom System erwerben können, beträgt jedoch 1 Byte; Sie können also nicht nach 1,5 Byte usw. fragen.

Schauen wir uns char an. Es ist kurz genug, um leicht angezeigt zu werden.

verwendetchar.jpg

Wenn alles mit 1 gefüllt ist, erhalten Sie 28-1. Dieser Wert sollte der maximale Wert von „unsigned char“ sein.

charvalues.jpg

Das System reserviert das höchstwertige Bit , um einen negativen Wert anzugeben. Somit reicht der Maximalwert für ein „char“ von -128 bis 127. Die Kapazität ist jedoch trotz eines Unterschieds im Datenbereich immer noch die gleiche wie bei „unsigned char“.

Im Computer verwendet es eine Operation namens Zweierkomplement. Dies ist ein Teil der Themen unter Bitweiser Betrieb, der in diesem Dokument nicht behandelt wird. Mehr zu diesem Thema wird in einem anderen Dokument besprochen.


Was ist der Unterschied zwischen charund int?

Hier sind einige häufige Verwendungen für "char" und "int":

char var1 = ‘9’; 
int var2 = 9;

Es ist ein weit verbreiteter Irrtum, dass "char" nur Symbole wie "a", "b" oder "9" enthalten kann. Das ist falsch.

Tatsächlich ist der Typ "char" derselbe wie der Typ "int", außer dass die Kapazität von char nur 1 Byte beträgt und die Kapazität von int 4 Byte. Somit ist der Datengrößenbereich zwischen den beiden unterschiedlich. Sie können dies in der Datenbereichstabelle oben sehen.

Die folgenden Codesegmente geben Ihnen eine klarere Sicht auf char und int.

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

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

Ausgabe:

int-Darstellung von '0' = 48
int-Darstellung von '1' = 49
int-Darstellung von '2' = 50

Also '2' – '0' = 1

Sie fragen sich vielleicht: Warum zeigt „0“ 48 an?

Dies führt zu den Themen, die als „ASCII-Code“-Konvertierung bezeichnet werden. Der ASCII-Standard ist ein großer IEEE-Meilenstein, der 1963 veröffentlicht wurde. Dies ist außerhalb des Rahmens dieses Artikels. Wir empfehlen Ihnen, die ASCII-Codetabelle online nachzuschlagen. Im Internet finden Sie zahlreiche Informationen zur ASCII-Codetabelle.

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