MetaTrader 5 herunterladen

Typen char, short, int und long

char

Ganzzahliger Typ char nimmt ein Byte (8 Bit) des Speicherplatzes ein und hilft im Dualsystem  2^8 Werte=256 auszudrücken. Ganzzahliger Typ char kann sowohl positive, als auch negative Werte. Änderungsbereich ist von -128 bis 127.

uchar

Ganzzahliger Typ uchar nimmt 1 Byte des Speicherplatzes ein, wie der Typ char, aber zum Unterschied vom Typ char ist uchar ausschliesslich für positive Werte bestimmt. Die minimale Größe betraegt 0, maximale Größe betraegt 255. Der erste Buchstabe im Namen des Types uchar ist die Abkürzung des Wortes unsigned (zeichenlos).

short

Der ganzzahliger Typ short nimmt 2 Byte (16 Bit) und erlaubt eine Menge der Größen auszudrücken, die 2 erhebt in der sechzehnten Potenz ist: 2^16=65 536. Da der Typ short ein Zeichensymbol ist und sowohl positive, als auch negative Größen enthält, ist sein Änderungsbereich von -32 768 bis 32 767.

ushort

Die zeichenlose Art vom Typ short ist der Typ ushort, dessen Größe auch 2 Byte ist. Minimale Größe ist 0, maximale Größe 65 535.

int

Ganzzahliger Typ int  hat die Größe 4 Byte (32 Bit). Minimale Größe  -2 147 483 648, maximale Größe  2 147 483 647.

uint

Zeichenloser ganzzahliger Typ nimmt 4 Byte des Speicherplatzes ein und erlaubt ganzzahlige Größen von  0 bis 4 294 967 295 auszudrücken.

long

Ganzzahliger Typ long hat die Größe 8 Byte (64 Bit). Minimale Größe -9 223 372 036 854 775 808, maximale Größe 9 223 372 036 854 775 807.

ulong

Ganzzahliger Typ ulong nimmt auch  8 Byte ein und erlaubt die Größen von  0 bis 18 446 744 073 709 551 615 zu speichern.

Beispiele:

char  ch=12;
short sh=-5000;
int   in=2445777;

Da zeichenlose ganzzahlige Typen für Speicherung negativer Werte nicht bestimmt sind, kann der Versuch, negative Größe zu erfahren zu unerwarteten Folgen führen.  Solch ein Script führt zur Endlosschleife:

//--- Endlosschleife
void OnStart()
  {
   uchar  u_ch;
 
   for(char ch=-128;ch<128;ch++)
     {
      u_ch=ch;
      Print("ch = ",ch," u_ch = ",u_ch);
    ;}
 ;}

Richtig wird auf dieser Weise:

//--- richtige Variante
void OnStart()
  {
   uchar  u_ch;
 
   for(char ch=-128;ch<=127;ch++)
     {
      u_ch=ch;
      Print("ch = ",ch," u_ch = ",u_ch);
      if(ch==127) break;
    ;}
 ;}

Ergebnis:

  ch= -128  u_ch= 128

  ch= -127  u_ch= 129

  ch= -126  u_ch= 130

  ch= -125  u_ch= 131

  ch= -124  u_ch= 132

  ch= -123  u_ch= 133

  ch= -122  u_ch= 134

  ch= -121  u_ch= 135

  ch= -120  u_ch= 136

  ch= -119  u_ch= 137

  ch= -118  u_ch= 138

  ch= -117  u_ch= 139

  ch= -116  u_ch= 140

  ch= -115  u_ch= 141

  ch= -114  u_ch= 142

  ch= -113  u_ch= 143

  ch= -112  u_ch= 144

  ch= -111  u_ch= 145

   ...

Beispiele:

//--- negative Größen können nicht in zeichenlosen Typen gespeichert werden 
uchar  u_ch=-120;
ushort u_sh=-5000;
uint   u_in=-401280;

 

Hexadezimal:Zahlen 0-9, Buchstaben a-f oder A-F für Größen 10-15; fangen mit  Ox oder OX an.

Beispiele:

0x0A0x120X120x2f0xA30Xa30X7C7

Sehen Sie auch

Typenreduzierung