Echter Datentyp C. Floating Point-Typen (Float, doppelt und langes Doppel)

Der Datentyp in der Programmierung ist ein Satz von zwei Sätzen: eine Vielzahl von Werten und vielen Operationen, die auf sie angewendet werden können. Zum Beispiel können Sie beispielsweise die Art der Daten der intenregierten nicht negativen Nummern, die aus einem endlichen Satz von natürlichen Zahlen bestehen, die Additionsvorgänge (+), Multiplikation (*), Integer-Division (/) anwenden, und den Rückstand (%) finden und Subtraktion (-).

Die Programmiersprache hat in der Regel einen Satz primitiver Datentypen - Typen, die von der Programmiersprache als grundlegende eingebaute Einheit bereitgestellt werden. In C ++ - Solche Typen nennt der Ersteller der Sprache die grundlegenden Typen. Grundlegende Typen in C ++ werden berücksichtigt:

  • logisch (bool);
  • symbol (zB Zeichen);
  • ganz (zB int);
  • fließkomma (z. B. Float);
  • Übertragungen (vom Programmierer bestimmt);
  • leere.

Die folgenden Typen werden auf der Liste aufgebaut:

  • index (zB Int *);
  • arrays (zB Zeichen);
  • referenz (z. B. doppelt &);
  • andere Strukturen.

Lassen Sie uns dem Konzept von Literal (z. B. 1, 2.4F, 25E-4, 'A' usw.) wenden: Wörtliche Aufnahme im Quellcode des Programms, das einen festen Wert darstellt. Mit anderen Worten, das Literal ist nur eine Anzeige eines Objekts (Wert) eines beliebigen Typs des Programmcodes. In C ++ ist es möglich, Integer-Werte, Fließkomma-Werte, symbolisch, boolesche, Zeichenfolge zu schreiben.

Das Literal eines ganzen Typs kann geschrieben werden:

  • 10. Nummernsystem. Zum Beispiel 1205;
  • 8. Nummernsystem in 0 + Format. Zum Beispiel 0142;
  • 16. Nummernsystem in 0x + Format + Nummer. Zum Beispiel 0x2f.

24, 030, 0x18 - Dies sind alle Aufzeichnungen derselben Nummer in verschiedene Systeme Hinweis.
So schreiben Sie eine Fließkommazone, um die Aufnahme durch den Punkt zu verwenden: 0,1, .5, 4. - entweder in
Exponentielle Aufnahme - 25e-100. Es sollte keine Räume in einem solchen Datensatz geben.

Der Name, mit dem wir die von den Literalen aufgezeichneten Werte anschließen können, wird als Variable bezeichnet. Die Variable ist der Name des Speicherbereichs, der von einer anderen Weise verwendet werden kann, deren Adresse zum Zugriff auf die Daten verwendet werden kann. Diese Daten werden auf einer bestimmten Weise während der Programmausführung aufgetragen, umgeschrieben und gelöscht. Mit der Variablen können Sie jederzeit auf Daten zugreifen und gegebenenfalls ändern. Daten, die mit variablen Namen erhalten werden können, wird als variabler Wert bezeichnet.
Um die Variable im Programm verwenden zu können, muss er deklariert werden, und falls erforderlich, können Sie (\u003d initialisiert) definieren. Die Ankündigung einer Variablen im Programmtext enthält notwendigerweise 2 Teile: den Basistyp und den Deklator. Der Spezifizierer und Initialisierer sind optionale Teile:

Const Int Beispiel \u003d 3; // Hier ist CONST - Spezifizierer // int - Basic-Typ //-Beispiel - Variable Name // \u003d 3 - Initialisierer.

Der Variablenname ist eine Reihenfolge von Symbolen aus den Buchstaben des lateinischen Alphabets (Kleinbuchstaben und Großbuchstaben), Zahlen und / oder Haftungszeichen, aber die erste Zeichennummer kann nicht sein. Der Name der Variablen sollte so gewählt werden, dass es immer leicht zu erraten ist, dass er zum Beispiel "Monatszahlung" speichert. In der Zusammenfassung und in der Praxis verwenden wir die Camelcase-Notation für die Aufzeichnungsregeln. Der Name der Variablen kann nicht mit den in der Sprache reservierten Wörtern zusammenfallen, Beispiele für solche Wörter: Wenn, während, Funktion, Gooto, Switch und andere Wörter: Wenn, während, funktionieren, goto, wechseln usw.

Der Deklator mit Ausnahme des Variablennamens kann zusätzliche Zeichen enthalten:

  • * - Zeiger; vor dem Namen;
  • * const - konstanter Zeiger; vor dem Namen;
  • & - Referenz; vor dem Namen;
  • - Array; Nach dem Namen;
  • () - Funktion; Nach dem Namen.

Mit dem Initialisierer können Sie den Wert für die Variable unmittelbar nach der Ankündigung bestimmen. Der Initialisierer beginnt mit dem Literal der Gleichheit (\u003d) und dann den Prozess des Einstellens des Werts des variablen Werts. Im Allgemeinen bezeichnet das Zeichen der Gleichheit in C ++ den Betrieb der Zuweisung; Damit können Sie den Wert der Variablen angeben und ändern. Zum verschiedene Typen Es kann anders sein.

Der Spezifizierer setzt zusätzliche Attribute als Typ. Der COND-Spezifizierer, der im Beispiel angegeben ist, können Sie den nachfolgenden Änderungswert der Variablen verbieten. Solche unveränderlichen Variablen werden konstant oder konstant bezeichnet.

Um eine Konstante ohne Initialisierung zu deklarieren, funktioniert nicht logischer Gründe:

Const int let_const; // Fehler, konstante variable const intimple \u003d 2 wird nicht initialisiert; // konstant mit einem Wert von 2 Beispiel \u003d 3; // Fehler beim Versuch, einen konstanten variablen Wert zuzuweisen

Für die Benennung der Konstanten ist es üblich, nur Großbuchstaben zu verwenden und die Wörter mit einem Symbol des unteren Anhebung zu trennen.

Hauptdatentypen in C ++

Anzeigen jedes Typs, der Leser sollte nicht vergessen, die Art der Daten zu ermitteln.

1. Ganzzahltyp (char, kurz (int), int, lang (int), lang lang)

Aus dem Titel ist es leicht zu verstehen, dass viele Werte aus Ganzzahlen bestehen. Die vielen Werte jedes der aufgelisteten Typen können auch ein Zeichen (signiert) oder nicht signiert sein (unsigniert). Die Anzahl der im Set enthaltenen Elemente hängt von der Größe des Speichers ab, der zum Speichern des Werts dieses Typs verwendet wird. Zum Beispiel wird 1 Byte des Speichers für eine Variable des Typs angegeben, sodass alle Artikel sein werden:

  • 2 8n \u003d 2 8 * 1 \u003d 256, wobei n die Speichergröße in Bytes ist, um den Wert zu speichern

In diesem Fall lauten die Bereiche der verfügbaren Ganzzahlen wie folgt:

  • - Für ein nicht signiertes Zeichen
  • [-128..127] - Für das ikonische Charakter

Standardmäßig gilt die Variable eines Ganzzahl-Typs als Zeichen. Um in dem Code anzugeben, dass die Variable ungelöst werden muss, wird das Zeichen des Abzeichens auf den Grundtyp der linken, d. H. Ohne Vorzeichen:

Unsignierte lange Werte; // setzt einen ganzen (langen) ungelösten Typ.

Die aufgelisteten Typen unterscheiden sich nur in Speichergrößen, die zur Speicherung erforderlich sind. Da die C ++ - Sprache ein ziemlich maschinenabhängiger Sprachstandard ist, garantiert nur folgende Bedingung:

  • 1 \u003d Größe char ≤ Größe kurz ≤ Größe int ≤ Größe lang.

Normalerweise sind die Größen der Typen wie folgt: char - 1, kurz - 2, int - 4, lang -8, lang lang - 8 Byte.

Mit den Werten des gesamten Typs können arithmetische Operationen durchgeführt werden: +, -, *, /,%; Vergleichsvorgänge: \u003d\u003d,! \u003d,<=, <, >,\u003e \u003d; Bit-Operationen: &, |, Xor,<<, >>.
Die meisten Operationen, z. B. Addition, Multiplikation, Subtraktion und Vergleichsoperationen, verursachen keine Probleme beim Verständnis. Manchmal kann das Ergebnis nach der Durchführung von arithmetischen Operationen über den Wertebereich liegen; In diesem Fall ergibt das Programm einen Fehler.
Eine Integer-Division (/) findet einen ganzen Teil des Teilens einer Ganzzahl in einen anderen. Beispielsweise:

  • 6 / 4 = 1;
  • 2 / 5 = 0;
  • 8 / 2 = 4.

Das prozentuale Symbol (%) gibt an, dass die Betriebsbestimmung des Rückstands zwei Ganzzahlen unterteilt:

  • 6 % 4 = 2;
  • 10 % 3 = 1.

Schwieriger, den Betrieb zu verstehen - Bit: & (s), | (Oder), xor (ohne oder),<< (побитовый сдвиг влево), >\u003e (Bitwörterverschiebung nach rechts).

Bitoperationen und oder und XOR zu jedem Bit von Informationen gelten den entsprechenden logischen Betrieb:

  • 1 10 = 01 2
  • 3 10 = 11 2
  • 1 10 & 3 10 = 01 2 & 11 2 = 01 2
  • 1 10 | 3 10 = 01 2 | 11 2 = 11 2
  • 1 10 xor 3 10 \u003d 01 2 xor 11 2 \u003d 10 2

In der Bildverarbeitung werden 3 Kanäle für Farbe verwendet: rot, blau und grün - plus Transparenz, die in der TYP-INT-Variablen gespeichert sind, da Jeder Kanal verfügt über einen Bereich von Werten von 0 bis 255. In einem 16-Irich-Nummernsystem wird ein bestimmter Wert wie folgt geschrieben: 0x180013FF; Dann entspricht der Wert von 18 16 dem roten Kanal, 00 16 - Blau, 13 16 - Grün, FF - Alpha-Kanal (Transparenz). Von einer solchen Ganzzahl zuordnen channel genannt Verwendet so genannt Eine Maske, in der die Positionen von Interesse F 16 oder 1 2 auf unseren Positionen sind. Diejenigen. Um den Wert des blauen Kanals hervorzuheben, müssen Sie die Maske verwenden, d. H. Schlacht und:

Int blue_channel \u003d 0x180013FF & 0x00F0000;

Danach wird der erhaltene Wert nach rechts auf die erforderliche Anzahl von Bits verschoben.

Die bitwiwige Verschiebung verschiebt sich nach links oder rechts auf so vielen Binärentladungen der Anzahl, wie auf der rechten Seite des Betriebs angegeben. Zum Beispiel wird die Nummer 39 für die Art der Zeichen in binärer Form in das folgende Formular geschrieben: 00100111. Dann:

Char BinaryExample \u003d 39; // 00100111 charient \u003d BinararyExample<< 2; // сдвигаем 2 бита влево, результат: 10011100

Wenn eine Variable des nicht signierten Typs, ist das Ergebnis die Nummer 156, für die iconic ist es -100. Beachten Sie, dass für die iconic Integer-Typen das Gerät in der leitenden Entladung der Bitansicht ein Zeichen der Anzahl der Anzahl ist. Gleichzeitig besteht der Wert in binärer Form aus allen Einheiten entspricht -1; Wenn nur in der älteren Entladung und in den anderen Entlädten - Nullen ist, hat eine solche Zahl einen Mindestwert für einen bestimmten Werttyp: Für char ist es -128.

2. Floating Point-Typ (Float, doppelt (Float))

Der Satz eines Fließkomma-Typs-Werte ist eine Teilmenge von reellen Zahlen, aber nicht jede reelle Zahl ist in binärer Form dargestellt, was manchmal zu dummen Fehlern führt:

Float-Wert \u003d 0,2; Wert \u003d\u003d 0.2; // Fehler, Wert, hier wird es hier nicht 0,2 sein.

Arbeiten mit Floating Point-Variablen, sollte der Programmierer nicht den Betrieb der Überprüfung der Gleichheit oder Ungleichheit verwenden, sondern auch Überprüfungen in einem bestimmten Intervall verwenden:

Wert - 0.2.< 1e-6; // ok, подбирать интервал тоже нужно осторожно

Neben Vergleichsvorgängen unterstützt ein Fließkommadentyp 4 arithmetische Operationen, die mathematische Operationen mit reellen Zahlen vollständig einhalten.

3. Boolean (logischer) Typ (BOOL)

Es besteht aus nur zwei Werten: True (TRUE) und FALSE. Mit Variablen arbeiten dieser Typ Verwenden Sie logische Operationen :! (Nicht), \u003d\u003d (Gleichheit),! \u003d (Ungleichung), && (logisch und), || (logisch oder). Das Ergebnis jeder Operation ist in der entsprechenden Wahrheitstabelle zu finden. z.B:

X y xor.0 0 0 0 1 1 1 0 1 1 1 0

4. Symboltyp (char, wchar_t)

Char Type ist nicht nur ein ganzer Typ (normalerweise wird normalerweise ein solcher Typ als Byte genannt), sondern auch das Zeichen, das die Zeichennummer von der Tabelle mit dem ASCII-Symbol speichert. Zum Beispiel entspricht der Code 0x41 dem Zeichen 'A', und 0x71 - 't'.

Manchmal ist es erforderlich, Zeichen zu verwenden, die in den ASCII-Tischen nicht verankert sind, und erfordert daher mehr als das 1. Byte. Für sie gibt es ein breites Symbol (wchar_t).

5.1. Arrays

Arrays ermöglichen es Ihnen, den sequentiellen Satz derselben Art von Elementen zu speichern. Das Array wird durch einen kontinuierlichen Block im Speicher gespeichert, sodass ein Array nicht deklariert werden kann, ohne die Größe anzugeben. Um ein Array zu deklarieren, nachdem der variable Name quadratische Klammern () schreibt, die auf seine Größe angeben. Beispielsweise:

Int Myarray; // Array von 5 Elementen eines ganzen Typs

Um das Array zu initialisieren, sind die Werte in lockigen Klammern aufgeführt. Es ist möglich, diese Weise nur während der Deklaration der Variablen zu initialisieren. Übrigens ist es in diesem Fall nicht erforderlich, die Größe des Arrays anzugeben:

Int Quoten \u003d (1, 3, 7, 9, 11); // Das Array wird von den 5. Werten initialisiert

Um auf einen bestimmten Wert in einem Array (Array-Element) zuzugreifen, wird ein Zugriffsvorgang () verwendet, um die Elementnummer anzuzeigen (Zahlen beginnen mit 0). Beispielsweise:

CHANCEN; // Zugriff auf das erste Element des Arrays. Wird den Wert von 1 Chancen zurückgeben; // Zugang zum dritten Element. Überprüft den Wert von 7 Quoten \u003d 13; // 5. Ein Element des Arrays weist einen neuen Quotenwert zu. // Zugriffsfehler.

5.3. Saiten

Um die Zeile aufzunehmen, verwenden Programmierer die Idee, dass die Zeichenfolge eine sequenzielle Zeile (Array) von Zeichen ist. Um das Ende der Zeichenfolge zu identifizieren, verwenden Sie eine spezielle Linie des Endes der Zeile: '\\ 0'. Solche Sonderzeichen, die aus einem Reverse-Slash und Identifizieren von Symbol bestehen, werden als Steuerungs- oder Escape-Symbole bezeichnet. Es gibt noch zum Beispiel '\\ n' - der Anfang einer neuen Zeile "\\ t" ist eine Tabelle. Um in der umgekehrten Slash-Zeichenfolge aufzunehmen, wird die Abschirmung verwendet - bevor das Zeichen selbst einen anderen Slash einfügt: '\\'. Screening wird auch zum Aufnehmen von Zitaten verwendet.

Erstellen Sie eine variable Zeichenfolge:

Chartextexample \u003d ('t', 'e', \u200b\u200b's', 't', '\\ 0'); // linie "test" wird aufgezeichnet

Es gibt einen vereinfachten Zeilen-Initialisierungsdatensatz:

Chartextexample \u003d "test"; // Das letzte Zeichen ist nicht geschrieben, aber die Größe ist noch 5

Ohne Details geben wir einen anderen nützlichen Datentyp - String. Saiten
Dieser Typ kann zum Beispiel folgen:

String hallo \u003d "hi"; String Name \u003d "Max!"; String hello_name \u003d hallo + name; // Holen Sie sich die Linie "Hi, Max!"

6. Link

Int a \u003d 2; // Die Variable "A" gibt den Wert von 2 int & b \u003d a an; // Die Variable "B" zeigt an, wo und "A" B \u003d 4; // Ändern des Wertes B, ändert der Programmierer den Wert A. Jetzt a \u003d 4 int & c \u003d 4; // Fehler, also ist es unmöglich, weil Link Sie können keinen Wert zuordnen

7. Zeiger

Um mit dieser Art von Daten umzugehen, müssen Sie sich daran erinnern, dass die vielen Werte dieses Typs - die Adresse der Speicherzellen, in der die Daten beginnen, erinnern. Der Zeiger unterstützt auch die Additionsvorgänge (+), subtrahiert (-) und Abrufen (*).

Adressen 0x0 bedeutet, dass der Zeiger leer ist, d. H. Zeigt keine Daten an. Diese Adresse hat ein eigenes Literal - NULL:

Int * nullpptr \u003d null; // leerer Zeiger

Addition und Subtraktion von Adressen mit einer Ganzzahl oder einer anderen Adresse erlaubt
Bewegen Sie sich über den Speicher, der dem Programm zur Verfügung steht.

Der Betrieb der Erzielung von Daten beginnt an der in dem Zeiger gespeicherten Adresse wird als RAMING (*) bezeichnet. Das Programm liest die erforderliche Anzahl von Speicherzellen und gibt den im Speicher gespeicherten Wert zurück.

INT-ValueInMemory \u003d 2; // Setzen Sie die Variable des Integertyps int * someptr \u003d // Kopieren Sie die Adresse der Variablen, hier und gibt die Adresse der Someptr-Variablen zurück. // Adresse der Speicherzelle, zum Beispiel 0x2f * someptr; // Wert wird in 4 Zellen gespeichert: 0x2f, 0x30, 0x31 und 0x32

Für Zeiger ist der Zuweisungsvorgang nicht verfügbar, der syntaktisch mit dem Kopiervorgang zusammenfällt. Mit anderen Worten, Sie können die Adresse eines anderen Zeigers oder der Adresse der Variablen kopieren, um jedoch den Wert der Adresse selbst zu ermitteln, ist nicht möglich.

Der Zeiger selbst wird im Speicher gespeichert, sowie die Werte der variablen anderen Typen und belegt 4 Bytes, sodass Sie einen Zeiger auf den Zeiger erstellen können.

8. Aufzählungen

Aufzählungen Der einzige Grundtyp, der vom Programmierer eingestellt ist. Mit und groß ist die Auflistung ein bestellter Satz benannter Ganzzahlkonstanten, und der Listenname ist der Grundtyp.

ENUM-Farbe (rot, blau, grün);

Standardmäßig rot \u003d 0, blau \u003d 1, grün \u003d 2. Daher können die Werte miteinander verglichen werden, d. H. rot< BLUE < GREEN. Программист при объявлении перечисления может самостоятельно задать значения каждой из констант:

ENUM-Zugriff (Read \u003d 1, Write \u003d 2, EXEC \u003d 4);

Oft ist es praktisch, die Aufzählungen zu verwenden, deren Werte zweiter sind, weil In der Binärdifferation besteht die Anzahl von 2% aus der 1. Einheit und Nullen. Beispielsweise:

8 10 = 00001000 2

Das Ergebnis der Zugabe dieser Zahlen untereinander zeigt immer deutlich, welche Zahlen waren:

37 10 = 00100101 2 = 00000001 2 + 00000100 2 + 00100000 2 = 1 10 + 4 10 + 32 10

Leere.

Der Syntax-Typ-Leere bezieht sich auf grundlegende Typen, kann jedoch nur als Teil komplexerer Typen verwendet werden, da Leere Objekte sind nicht vorhanden. In der Regel wird dieser Typ verwendet, um zu informieren, dass die Funktion keinen zurückgegebenen Wert oder als Grundtyp des Zeigers auf Objekte unsicherer Typen hat:

Ungültiges Objekt; // Fehler, es gibt keine Objekte wie void void // fehler, es gibt keinen link zu void leoid * ptr; // OK, speichern Sie einen Zeiger auf einen unbekannten Typ

Oft verwenden wir void, um sich auf die Tatsache zu beziehen, dass die Funktion keinen Wert zurückgibt. Der VOID-Indikator funktioniert, wenn der Programmierer vollständig das Anliegen der Erinnerungsintegrität und der richtigen Art von Typ ergreift.

Besetzung

Oft ist es notwendig, den Wert der Variablen eines Typs mit einem anderen in einen anderen zu bringen. In dem Fall, in dem der Satz von Source-Typ-Werten eine Teilmenge eines größeren Typs ist (zum Beispiel Int ist eine Teilmenge von Lang, und ein langes Doppel), ist der Compiler implizit implizit ( implizit.) Ändern Sie die Art des Werts.

Int intger \u003d 2; Float Floating \u003d Ganzzahl; // Floating \u003d 2.0

Die entgegengesetzte Art des Typs wird mit Informationsverlust abgeschlossen, so dass von der Fließkommazahl nur der gesamte Teil bestehen bleibt, der Bruchteil wird verloren gehen.

Es gibt eine klare (explizite) -Typ-Transformation, um dies zu tun, nach links einer Variablen oder einem beliebigen Wert des Quelltyps in Klammern wird der Typ geschrieben, an dem er erstellt wird:

Int value \u003d (int) 2.5;

Unary und binäre Operationen

Diese Operationen, die wir früher durchgeführt wurden, werden Binary: Auf der linken Seite und rechts des Betriebssymbols sind Werte oder Variablen, z. B. 2 + 3. In den Programmiersprachen verwenden Sie zusätzlich zu Binärvorgängen auch ungleiche Vorgänge auf Variablen angewendet. Sie können sowohl links als auch rechts der Variablen sein, mehrere solcher Operationen wurden zuvor getroffen - der Übergangsvorgang (*) und die Erfassung der Adresse der Variablen (&) sind ungeilig. Die Bediener "++" und "-" - Erhöhung und Verringerung des Werts der Ganzzahlgröße jeweils um 1, kann entweder links oder rechts von der Variablen geschrieben werden.

C ++ wendet auch eine verkürzte Aufzeichnung von binären Vorgängen an, wenn sich dieselbe Variable in den linken und rechten Teilen des Ausdrucks befindet, d. H. Jede Operation wird mit einem variablen Wert durchgeführt, und das Ergebnis des Betriebs wird in dieselbe Variable eingegeben:

A + \u003d 2; // dasselbe wie a \u003d a + 2; b / \u003d 5; // das gleiche wie b \u003d b / 5; C & \u003d 3; // dasselbe wie C \u003d C & 3;

Dieser Scanquer-Datensatz enthält Informationen zu den grundlegenden Datentypen der C ++ - Programmiersprache und die Merkmale ihrer Implementierung. Am Ende des Datensatzes wird auch eine Tabelle mit den Bereiche dieser Wertearten erstellt.

Datentyp-Konzept

Das Hauptziel eines Programms ist das Verarbeiten von Daten. Daten verschiedener Typen werden auf unterschiedliche Weise gespeichert und verarbeitet. In jeder algorithmischen Sprache muss jede Konstante, variabel, das Ergebnis der Berechnung des Ausdrucks oder der Funktion einen bestimmten Typ haben.

Datentyp bestimmt:

  • interne Datenpräsentation im Speicher des Computers;
  • viele Werte, die die Werte dieses Typs ergreifen können;
  • operationen und Funktionen, die auf die Werte dieses Zinns angewendet werden können.

Basierend auf diesen Merkmalen wählt der Programmierer den Typ des einzelnen Werts, der im Programm verwendet wird, um echte Objekte darzustellen. Die obligatorische Typ Beschreibung Erlaubt dem Compiler, die Zulässigkeit verschiedener Programmdesigns zu überprüfen. Aus der Art der Größe werden die Maschinenbefehle verwendet, um Daten zu behandeln.

Alle Arten von C ++ - Sprachen können in eingeteilt werden instandhaltung und verbindung . In C ++ - Sprache, sechs basic Datentypen zur Darstellung von Ganzzahlen, echten, symbolischen und logischen Werten. Basierend auf diesen Typen kann der Programmierer eine Beschreibung eingeben. verbundstoff Typen. Dazu gehören Arrays, Übertragung, Funktionen, Strukturen, Referenzen, Zeiger, Assoziationen und Klassen.

Hauptdatentypen in C ++

Haupt- (Standard-) Datentypen werden oft als arithmetisch bezeichnet, da sie in arithmetischen Operationen verwendet werden können. Um die Haupttypen zu beschreiben, werden Folgendes definiert:

  1. int (ganzes);
  2. char (symbol);
  3. wchar_t (erweitertes Symbol);
  4. bOOL (logisch);
  5. float (echt);
  6. doppelt (Real-Genauigkeitsstoff).

Die ersten vier Dosen werden als Ganzzahl bezeichnet ( ganze Zahl ), die letzten zwei - floating Point-Typen . Der Code, der den Compiler für die Bearbeitung von Integer-Werten erzeugt, unterscheidet sich von dem Code für die Fließkomma-Werte.

Es gibt vier typ Spezifizierer. Angeben der internen Darstellung und des Bereichs der Standardtypen:

  • kurz (kurz);
  • lang Lang);
  • signiert (Zeichen);
  • ohne Vorzeichen.

Ganztyp (int)

Die Größe des Typs int wird nicht vom Standard bestimmt, sondern hängt vom Computer und dem Compiler ab. Für einen 16-Bit-Prozessor unter der Größe dieser Art sind 2 Bytes für 32-Bit-4-Bytes angegeben.

Der Sport-Spezifizierer vor dem Typennamen zeigt den Compiler an, dass die Zahl, um 2 Byte zu nehmen, unabhängig von der Entladung des Prozessors. Der lange Spezifiziermittel bedeutet, dass der gesamte Wert 4 Bytes einnehmen wird. Somit, auf dem 16-Bit-Computer, der Int- und kurzen Int-Äquivalenten sowie auf 32-Bit-Int und langer Int.

Sicht von innen Die Werte des gesamten Typs sind eine ganze Zahl im Binärcode. Bei Verwendung des signierten Spezifikators wird das Senior-Bit der Nummer als Zeichen interpretiert (0 ist eine positive Zahl, 1 - negativ). Mit dem nicht signierten Spezifizierer können Sie nur positive Zahlen darstellen, da der leitende Entlastung als Teil des Codecodes betrachtet wird. Somit hängt der Bereich der Werte des Typs int von den Angaben ab. Die Bereiche der Werte der Werte eines gesamten Typs mit verschiedenen Speziatika für IBM PC-kompatible Computer sind am Ende der Aufnahme in den "Bereichen einfacher Datentypen" angegeben.

Standardmäßig gelten alle ganzgerechten Typen als ikonisch, dh der signierte Spezifizierer kann abgesenkt werden.

Konstanten, die im Programm auftreten, ein oder ein anderer Typ werden in Übereinstimmung mit ihrer Ansicht zurückzuführen. Wenn dieser Typ aus irgendeinem Grund nicht dem Programmierer entspricht, kann er explizit den erforderlichen Typ mit den Sufifixes l, l (lang) und u, u (unsigned) explizit angeben. Beispielsweise hat eine 32L-Konstante eine Art langer und besetztes 4 Bytes. Sie können die Suffixe L und U gleichzeitig zum Beispiel 0x22UL oder 05lu verwenden.

Hinweis

Arten von kurzem int, langer int, signierter int und unsigned int können auf kurze, lange, signierte und unsigned geschnitten werden.

Symboltyp (Zeichen)

Unter der Größe des Zeichentyps wird die Menge an Byte ausreichend ausgegeben, um ein beliebiges Zeichen aus dem Zeichensatz für diesen Computer aufzunehmen, der den Typ Titel leitete. In der Regel ist es 1 Byte. Typ Char CHE, wie andere ganze Typen, kann mit einem Zeichen oder keinem Zeichen sein. In Bezug auf Zeichen können Sie Werte im Bereich von -128 bis 127 speichern. Bei Verwendung der nicht signierten Werte können die Werte zwischen bis zu 255 liegen. Dies reicht aus, um ein Zeichen aus dem 256-Zeichen-ASCII zu speichern einstellen. Die Werte des Zeichentyps werden auch zum Speichern von Ganzen verwendet, die die Grenzen der angegebenen Bereiche nicht überschreiten.

Erweiterter Symboltyp (wchar_t)

Der WARHAR_T-Typ ist so konzipiert, dass er mit einem Satz von Zeichen zusammenarbeitet, zum Codieren, das nicht aus reicht, der nicht mit 1 Byte, beispielsweise Unicode, reicht. Die Größe dieser Art hängt von der Implementierung ab; In der Regel entspricht es der Spitze kurz. Die String-Konstanten des WARR_T-Typs werden mit dem Präfix L aufgezeichnet, z. B. L »-Gates.

Logic-Typ (BOOL)

Die Größen des logischen Typs können nur echte und falsche Werte dauern, die reservierte Wörter sind. Die interne Form der Darstellung des Wertes von FALSE - 0 (Null). Jeder andere Wert wird als wahr interpretiert. Bei der Umwandlung auf einen ganzen echten Typ ist 1.

Floating Point-Typen (Float, doppelt und langes Doppel)

Der C ++-Standard definiert drei Arten von Datenspeicherung von realen Werten: Float, doppelt und langes Doppel.

Floating-Punkt-Datentypen werden im Speicher des Computers anders gespeichert als ganzzahlige. Die interne Darstellung der reellen Zahl besteht aus zwei Teilen - Mantissa und Ordnung. Bei IBM PC-kompatiblen Computern wird die Größe des Float-Typs von 4 Bytes belegt, von denen eine binäre Entladung durch das MANTISSA-Zeichen ausgetragen wird, 8 Entladungen unter der Bestellung und 23 unter der Mantissa. Mantissa ist eine Zahl, mehr als 1,0, aber weniger 2.0. Da die leitende Mantissa-Ziffer immer gleich 1 ist, wird es nicht gespeichert.

Für die Werte der Art von Doppel, die 8 Bytes, die Entladung von 8 Bytes, 11 und 52 belassen werden. Die Länge der Mantissa bestimmt die Genauigkeit der Anzahl, und die Längenlänge ist der Bereich. Wie aus der Tabelle am Ende des Datensatzes ersichtlich ist, unterscheiden sich die Bereiche ihrer zulässigen Werte mit der gleichen Anzahl von Bytes, die der Art von Float- und Long Int zugeordnet ist, sich stark unterscheiden aufgrund der internen Form der Darstellung.

Der lange Spezifizierer vor dem doppelten Typennamen zeigt an, dass 10 Bytes unter seiner Größe angegeben sind.

Floating Point-Konstanten haben einen Standardtyp doppelt. Sie können explizit die Art der Konstante mit den SFixes F, F (Float) und L, L (lang) angeben. Zum Beispiel hat die 2e + 6L-Konstante einen langen doppelten Typ, und 1,82F konstant ist die Art des Floats.

Um tragbar auf verschiedenen Programmplattformen zu schreiben, ist es unmöglich, Annahmen über die Größe des Typs int zu erstellen. Um es zu erhalten, müssen Sie den Größenof-Betrieb verwenden, dessen Ergebnis die Größe des Typs in Bytes ist. Zum Beispiel wird für das Betriebssystem MS-DOS Size (INT) dadurch ergeben, und für Windows 98 oder OS / 2 wird das Ergebnis 4 betragen.

In Ansi-Standards werden die Bereiche für Grundtypen nicht angegeben, nur die Beziehungen zwischen ihren Größen werden beispielsweise bestimmt:

sizef (Float) ≤ Skleiner (doppelt) ≤ SizeOf (langes Doppel)
Größentof (char) ≤ skleiner (kurz) ≤ sizeof (int) ≤ sizeof (lang)

Hinweis

Minimale und maximal zulässige Werte für ganzzahlige Typen hängen von der Implementierung ab und werden in der Kopfzeile angezeigt. (), die Eigenschaften realer Typen - in der Datei () sowie in der Numeric_limits-Klassenschablone

Leertyp

Neben den aufgeführten, beinhaltet der Haupttyp der Sprache den Typ ungültig, aber der Satz von Werten dieses Typs ist leer. Es wird verwendet, um Funktionen zu definieren, die keine Werte zurückgeben, um eine leere Liste von Funktionsargumenten als Grundtyp für Zeiger und im Typenbetrieb anzugeben.

Bereiche von einfachen Datentypen in C ++ für IBM PC-kompatible Computer

F: Was bedeutet der Begriff IBM PC-kompatibles Computer?
A: IBM PC-kompatibler Computer (ENG. IBM PC-kompatibel) - Computer, architektonisch in der Nähe von IBM PC, XT und AT. IBM PC-kompatible Computer werden auf der Grundlage von Mikroprozessoren erstellt, die mit Intel 8086 kompatibel sind (und wie Sie wissen, wie Sie wissen, dass alle intel ausgegebenen späteren Prozessoren die vollständige Rückwärtskompatibilität von 8086 haben). In der Tat sind es fast alle modernen Computer.

Verschiedene Arten von Ganzzahlen und echten Typen, die sich im Bereich und der Genauigkeit der Datenpräsentation unterscheiden, werden eingetragen, um einem Programmierer die Fähigkeit zu geben, die Fähigkeiten einer bestimmten Hardware am effektivsten einzunehmen, da die Geschwindigkeit der Berechnungen und der Speichermenge von der Menge abhängen die Auswahl des Typs. Das für Computer optimierte Programm kann jedoch nicht auf andere Plattformen übertragen werden, daher sollten im Allgemeinen Abhängigkeiten von den spezifischen Merkmalen von Datentypen vermieden werden.

Eine Art Wertebereich Größe (Byte)
bool richtig und falsch 1
signiertes Zeichen -128 … 127 1
unsigniertes Char. 0 … 255 1
short Int unterschrieben. -32 768 … 32 767 2
unsignierte kurze Int. 0 … 65 535 2
signierte lange int. -2 147 483 648 … 2 147 483 647 4
unsigniert lange int. 0 … 4 294 967 295 4
schweben 3.4E-38 ... 3.4e + 38 4
doppelt. 1.7e-308 ... 1.7c + 308 8
langes doppeltes. 3.4E-4932 ... 3.4e + 4932 10

Für echte Typen zeigt die Tabelle die absoluten Werte der minimalen und maximalen Werte an.

In dieser Lektion lernen Sie alphabetsprache C ++sowie was datentypen Kann das Programm darauf behandeln. Vielleicht ist dies nicht der aufregendste Moment, aber diese Kenntnisse sind notwendig! Außerdem haben Sie mit dem Erlernen einer anderen Sprachprogrammiersprache mit dem Erlernen desselben Lernschritts. Das C ++ - Sprachprogramm kann die folgenden Zeichen enthalten:

  • hauptstadt, Kleinbuchstaben Latin Buchstaben A, B, C ..., X, Y, Z und Unterstrich;
  • arabische Zahlen von 0 bis 9;
  • sonderzeichen: (), | () + - /% *. \\ ':< > = ! & # ~ ; ^
  • symbole von Raum, Registerkarten und Übergang zu einer neuen Zeichenfolge.

Im Programmtest können Sie verwenden bemerkungen. Wenn der Text mit zwei Zeichen "schräg" // mit einem Übergangssymbol auf eine neue Zeichenfolge endet oder zwischen Zeichen / * und * / abgeschlossen ist, ignoriert der Compiler ihn.

Daten in C ++

Um die Aufgabe in einem beliebigen Programm zu lösen, werden alle Daten verarbeitet. Sie können sein verschiedene Typen: ganze und reelle Zahlen, Symbole, Linien, Arrays. Die Daten in C ++ sind üblich, um zu Beginn der Funktion zu beschreiben. ZU grunddatentypen Sprache gehören:

Verwenden Sie, um andere Datentypen zu bilden, verwenden Sie grundlegende und sogenannte spezifiziererC ++ Definiert vier Datentyp-Anzeigen:

  • kurz - kurz;
  • lang Lang;
  • signiert - Zeichen;
  • unsigniert - unauslöbel.

Ganzzahltyp.

Typvariable int. Der Computer kann entweder 2 oder 4 Bytes einnehmen. Es hängt von der Nachweise des Prozessors ab. Standardmäßig gelten alle ganzen Typen als ikonisch, dh der Spezifizierer unterzeichnet.sie können nicht angeben. Spezifizierer ohne Vorzeichenermöglicht Ihnen, nur positive Zahlen darzustellen. Nachfolgend finden Sie einige Bereiche der Werte des gesamten Typs.

Eine Art Reichweite Die Größe
int. -2147483648…2147483647 4 Byte
unsigniert int. 0…4294967295 4 Byte
unterzeichnete int. -2147483648…2147483647 4 Byte
kurz int. -32768…32767 2 Byte
lange int. -2147483648…2147483647 4 Byte
unsignierte kurze Int. 0…65535 2 Byte

Echter Typ

Die Fließkommazahl ist in Form von ME + -A dargestellt, wobei M Mantisse (eine Ganzzahl- oder Fraktionierzahl mit einem Dezimalpunkt) ist, P ist eine Reihenfolge (Ganzzahl). Normalerweise die Werte des Typs schweben4 Bytes besetzen und doppelt.8 Bytes. Tabellenbereiche der echten Art:

schweben 3,4e-38 ... 3,4e + 38 4 Byte
doppelt. 1 7E-308 ... 1.7e + 308 8 Bytes
langes doppeltes. 3,4e-4932 ... 3,4e + 4932 8 Bytes

Logischer Typ

Typvariable boolkann nur zwei Bedeutungen dauern wahr (wahr ) oder fasle (falsch ). Jeder, nicht gleich Null, wird als interpretiert wahr.Wert falsch Im Speicher als 0 dargestellt.

Leertyp

Viele Werte dieses Typs sind leer. Es wird verwendet, um Funktionen zu definieren, die keine Werte zurückgeben, um eine leere Liste von Funktionsargumenten als Grundtyp für Zeiger und im Typenbetrieb anzugeben.

Transformation von Datentypen

C ++ unterscheiden zwei Arten von Datentypenumwandlung: explizit und implizit.

  • Implizite Umwandlung. passiert automatisch. Dies wird während des Vergleichs durchgeführt, die Expression verschiedener Typen zugewiesen oder berechnet. Beispielsweise zeigt das folgende Programm die Art des Typs der Konsole an schweben.

#Include "stdafx.h" #include Verwenden von Namespace STD; Int main () (int i \u003d 5; Float f \u003d 10.12; Cout<\u003e ungültig "); zurückgeben 0;)

#Include "stdafx.h"

#Einschließen.

verwenden von Namespace STD;

int Main ()

int i \u003d 5; Float f \u003d 10.12;

kehre<< i / f ;

system ("Pause \u003e\u003e void");

rückgabe 0;

Die höchste Priorität empfängt den Typ, in dem die Informationen weniger verloren gehen als alle. Es ist nicht notwendig, die implizite Arttransformation zu missbrauchen, da es unterschiedliche Arten unerwarteter Situationen gibt.

  • Explizite Umwandlung. Anders als implizit vom Programmierer. Es gibt mehrere Wege zu einer solchen Konvertierung:
  1. Transformation in Styles. C.: (Float) a
  2. Transformation in Styles. C ++.: float ()

Auch Arten von Typen können mit den folgenden Vorgängen durchgeführt werden:

static_cast.<> () Const_cast.<> () Neu Interpret_cast.<> () Dynamic_cast.<> ()

static_cast.<> ()

const_cast.<> ()

neu interpretieren<> ()

dynamic_cast.<> ()

static_cas.- Konvertiert verwandte Datentypen. Dieser Bediener führt Typen durch die üblichen Regeln, die erforderlich sein können, wenn sich der Compiler nicht automatisch verwandelt. Die Syntax wird so aussehen:

Typ static_cast.<Тип> (ein Objekt);

Mit Hilfe von static_cast ist es unmöglich, die Konstanz der Variablen zu entfernen, es ist jedoch Kräfte zum nächsten Bediener. const_cast. - Gilt nur, wenn Sie die Konstanz des Objekts entfernen müssen. Die Syntax wird so aussehen:

Eine Art Const_cast.< Eine Art> (ein Objekt);

neu interpretieren- Es wird verwendet, um verschiedene Typen, ganze Zahlen in den Zeiger umzuwandeln und umgekehrt zu konvertieren. Wenn Sie das neue Wort "Zeiger" gesehen haben, haben Sie keine Angst! Dies ist auch ein Datentyp, aber wir werden nicht bald mit ihm zusammenarbeiten. Die Syntax hier ist derselbe wie in den zuvor überprüften Bedienern:

Eine Art Neu interpretieren._Besetzung.< Eine Art> (ein Objekt);

dynamic_cast. - Zum dynamischen Umwandlung von Typen implementiert die Anpassung von Zeigern oder Links. Syntax:

Eine Art Dynamisch _Besetzung.< Eine Art> (ein Objekt);

Symbole verwalten

Mit einigen davon sind Sie die meisten "Steuerfiguren", die Sie bereits vertraut sind (zum Beispiel mit \\ N.). Alle beginnen mit dem umgekehrten "Slash" und werden auch von doppelten Zitaten eingerahmt.

Bild

Hex-Code

Name

Beeper-Piepton

Rückkehr zu Schritt

Seite Übersetzung (Format)

Linienübersetzung

Rückfahrkutsche

Horizontale Tabulation

Vertikale Tabulation

Antworten:
  1. Extan-Datentypen:

kurzer int, nicht signiertes kurzes int, int, unsigniert int, lang, unsigniert lang.

  1. Floating Semicolons Datentypen (entsprechen dem echten Typ):

float, doppelt, langes doppeltes Doppel.

  1. Symboldatentyp:

char (signed char), unsigniert char, wchar_t.

  1. Logischer Datentyp:

bool.

  1. Aufzähliger Datentyp (in Visual C ++ eingegeben):

enum.

2. Was sind die Funktionen der Verwendung von ganzzahligen Datentypen?

In C ++, die wichtigsten Integer-Datentypen: Kurzer int, unsignierter kurzer Int, int, unsigniert int, langer Int, unsigniert lang (unsigniert langer Int).

Diese Datentypen repräsentieren Werte aus einer Vielzahl von Ganzzahlen. Beispielsweise:

2 -100 398

Datentypen, die von der nicht signierten Konsole starten, können nur positive Zahlen enthalten.

Kurzer int, nicht signierte kurze Int-Daten dauert zweimal weniger in Erinnerung als int, unsigniert int.

Datentyp lang, unsigniert lang ist doppelt so groß wie in der Erinnerung als int, unsigniert int.

3. Wie im Programm wird eine Variable namens X eines ganzen Typs beschrieben?

Antworten:
int x; // Ganzzahl mit einem Zeichen

Infolgedessen unter der Variablen x. Es wird einen Platz in der Erinnerung an 4 Bytes geben. Die Größe des Speichers, der der Variablen zugeordnet ist, hängt von den Eigenschaften des Computers, der Art des Betriebssystems und den Compiler-Einstellungen ab.

4. So nehmen Sie eine Nummer 239 in einer Variablen auf?

Verwenden Sie dazu den Zuweisungsoperator, der vom '\u003d'-Symbol bezeichnet wird.

Antwort 1. Nach seiner Beschreibung eine Zahl auf eine Variable vornehmen.

int x; x \u003d 239;

Antwort 2. Erstellen Sie eine Nummer auf die Variable während seiner Beschreibung (Erstinitialisierung).

int x \u003d 239;

5. Was sind die Funktionen von Floating Semicolons Datentypen?

Die Arten von schwimmenden Semikolons dürfen Werte aus einer Vielzahl von reellen Zahlen darstellen. Beispielsweise:

8.35 -990.399 239.0.

C ++ hat die folgenden grundlegenden Fließkomma-Datentypen:

float, doppelt, langes doppeltes Doppel.

Ein doppelt einvariabler Typ dauert zweimal mehr Platz im Speicher des Computers als ein Float mit variabler Typ.

Außerdem dauert ein variabler Typ von langem doppelt zweimal mehr Platz im Speicher des Computers als ein doppeltes Variablen.

6. Wie beschreiben Sie eine Variable, die einen Fließkomma-Wert annimmt?

Ein Beispiel für eine Beschreibung der Variablen-Typfloat, doppelt, langes doppeltes Doppel:

float f; doppelt d; lange doppelte ld;

7. So nehmen Sie numerische Werte in einer Fließkomma-Variablen auf?

Ein Beispiel, um numerische Daten in die variablen Fließkomma-Variablen herzustellen:

float f \u003d -9928.45; // Start initialisierung. doppelt d; lange doppelte ld; d \u003d 0,445332; // Bedienerauftrag. ld \u003d 3892923898239.030903; // Bedienerauftrag.

8. So übersetzen Sie einen Float mit variablem Typ auf den Typ Int?

Verwenden Sie dazu den Betrieb der Art des Typs. In Klammern müssen Sie den Namen des Typs angeben, an dem die Briefings auftreten.

float a; int b; a \u003d 8.457; b \u003d (int) a; // b \u003d 8

Bei Verwendung von Typ-Laufwerksvorgängen müssen Sie die Einschränkungen berücksichtigen, die auf Typen überlagert sind, die weniger Platz im Speicher des Computers einnehmen.

Beispielsweise kann ein kurzer Typ mit Variablentyp einen kleineren Anzahl von Zahlen als variable Schwimmerarten darstellen, doppelt. Beim nächsten Auflistung ist der Wert in einem Variablen-Typ-Short Int überlaufen:

kurz; float f; f \u003d 3990099.8; i \u003d (int) f; // I \u003d -7597 - Überlauf

9. So übersetzen Sie eine Variable vom Typ Int in Double Type?

Beispiel, um mit int im Doppel zu bringen:

int i; doppelt d; i \u003d 982; d \u003d (doppelt) i; // d \u003d 982.0

10. Was sind die Merkmale der Verwendung von Datentyp CHAR (symbolische Daten) im Programm?

Chartyp-Daten stellen den symbolischen Wert des von der Tastatur eingegebenen Codes dar. Symbolcode ist eine ganze Zahl.

Zum Beispiel ist der Code des Symbols 'f' gleich dem Wert von 102.

Das Codefragment, in dem der Symbolcode berechnet wird:

int-Code; charymbol; symbol \u003d "f"; code \u003d (int) Symbol; // Code \u003d 102

Charterdaten sind die gleichen Ganzzahlen. CHAR-Typ-Daten einnehmen 1 Byte im Speicher des Computers.

Das Verhältnis "Symbolcode" befindet sich in der Windows-Symboltabelle. Symbole mit Codes von 0 bis 127 sind reservierte BIOS-Zeichen. Dazu gehören die meisten verbrauchten Zeichen, Zeichen der Zahlen, Symbole des lateinischen Alphabets. Diese Zeichen können nicht geändert werden.

Symbole mit Codes von 128 bis 255 sind regionale Symbole, die an ein bestimmtes Alphabet dieses Computers angeschlossen sind, auf dem die installierte operationssystem Windows.

11. Was sind die Funktionen der Verwendung von Datentyp BOOL (logischer Typ)?

Variablen des Typs Bool können nur zwei Werte dauern:

wahre Wahrheit,

falsch - Lüge.

Diese Variablen werden verwendet, um logische Ausdrücke zu überprüfen. Der numerische Wert ist eigentlich gleich 1. Der numerische Wert ist falsch gleich 0.

Snippet-Code, der bestimmt zahlenwerte Richtig und falsch:

int ergebnis; bool b; ergebnis \u003d (int) wahr; // Ergebnis \u003d 1 b \u003d falsch; ergebnis \u003d (int) b; // Ergebnis \u003d 0

Das Codesfragment, das die Typen int verwandelt und in BOOL float:

int i; float f; bool b; i \u003d 6; b \u003d (bool) i; // b \u003d true f \u003d 0,0; b \u003d (bool) f; // b \u003d falsch

12. So ermitteln Sie die Größe des Speichers, der die Variable dieses Typs annimmt?

Dies verwendet den Abschnitt () Betrieb.

Das Codefragment, das die Größe einiger Datentypen bestimmt:

int d; d \u003d sizeof (char); // d \u003d 1 d \u003d sizeOf (unsigniert int); // d \u003d 4 d \u003d sizeof (float); // d \u003d 4 d \u003d sizeof (doppelt); // d \u003d 8

13. Wie ist die Initialisierung von Variablen verschiedener Typen?

int d \u003d 28; float Z \u003d (Float) 2.85; char c \u003d "k"; String ^ s \u003d "Hallo!" ; doppelt r \u003d -8,559;

14. So ermitteln Sie den maximal zulässigen (minimal zulässigen) Wert einer Variablen eines bestimmten Typs?

Um das am stärkste zulässige oder minimalste Wert zu ermitteln zulässiger Wert Variable einiger Typ in der Bibliothek. Nettorahmen. MaxValue- und MinValue-Eigenschaften werden verwendet.

Beispiele zur Bestimmung der Grenzwerte von Variablen verschiedener Typen.

Für Variablen Typ INT:

// Geben Sie int ein. int i; lange Maxint; langer Minints; Maxint \u003d (lang) i.MaxValue; // Maxint \u003d 2147483647 Minints \u003d (lang) i.minvalue; // Minint \u003d -2147483648

Für Variablen Typ Short Int:

// Typ Kurzer int kurze int si; int Maxint; int Minint; Maxint \u003d (int) si.maxValue; // Maxint \u003d 32767 Minints \u003d (int) si.minvalue; // Minint \u003d -32768

Für unsignierte Int-Variablen:

// unsigniert int. unsignierte int ui; unsigniert int Maxint; unsigniert int Minint; Maxint \u003d UI.MaxValue; // maxint \u003d 4294967295 Minints \u003d UI.MinValue; // Minint \u003d 0

Für Variablen-Float-Float:

// Typ Float. float f; float MaxF; float Minf; MaxF \u003d F.MaxValue; // maxf \u003d 3.402823e + 38 Minf \u003d F.MinValue; // minf \u003d -3.402823e + 38

Für Variablentyp doppelt:

// Type Double. doppelt d; doppelt maxd; doppelter Geist; Max \u003d D.MaxValue; // max \u003d 1.79769313486232e + 308 Min \u003d d.minvalue; // min \u003d -1.79769313486232e + 308

Für Variablen Typ Char:

// Typ Char. char c; int maxc; iNT MINC; Max \u003d (int) C.MaxValue; // max \u003d 127 Min \u003d (int) c.minvalue; // min \u003d -128

15. Was sind die Merkmale der Verwendung der Art von ENUM?

Enum Typ ist ein Datentyp. Es definiert mnemonische Werte für gesamte Werte. Jeder mnemonische Wert hat einen bestimmten Inhalt und scheint eine ganze Zahl zu sein.

Ein Beispiel für die Verwendung des ENUM-Typs, um Monate des Jahres zu bezeichnen:

eNUM-Monate (Januar, Fabruary, März, April, Mai, Juni, Juli, August, September, Oktober, November, Decept) MN; mn \u003d Januar; // mn \u003d 0 mn \u003d März; // mn \u003d 2 mn \u003d september; // mn \u003d 8

Das Beispiel beschreibt die Variable mit dem Namen MN Type Enum Monhs. Monsonic-Werte der Monate (Januar, Februar, ...) beginnen mit 0 (0, 1, 2, ...). Der mnemonische Wert von Januar entspricht einem ganzzahligen Wert 0, der mnemonische Wert des Februars entspricht einem ganzzahligen Wert von 1 usw.

Die Verwendung des Enum-Typs kann also Mnemonic Notation im Programmtext für eine bessere Klarheit des Quellcodes verwendet werden.

Sie können schreiben und so:

mn \u003d (Enum Monhs) 2; // mn \u003d März mn \u003d (Enum Monhs) 11; // mn \u003d Dezember

16. Welche Merkmale der Art des Typsleere. in ProgrammenC.++ ?

Der void-Datentyp wird in den folgenden Fällen verwendet:

  • wenn Sie eine Funktion beschreiben müssen, die keinen Wert zurückgibt (siehe Beispiel);
  • wenn Sie eine Funktion beschreiben müssen, die keine Parameter empfängt (siehe Beispiel).

Beispiel. Die MyFun () -Funktion ohne Parameter, die keinen Wert zurückgibt (gibt den Void-Typ zurück) und empfängt keine Parameter.

Öffentlichkeit: ungültig myfun (void) { // Körperfunktion. // ... Rückkehr; // Rückkehr von einer Funktion, die keine Werte zurückgibt } // Anruffunktion aus dem Programm ... MyFun (); ...

17. Ist es möglich, eine Variable des Typs zu erklären?leere. in einem Programm?

Es ist unmöglich, da der VOID-Typ nicht mit dem Wert verbunden ist.

Die Ankündigung eines Variablen Typs führt zu einem Kompilierungsfehler mit einer Meldungsausgabe:

"Illegale Verwendung von Typ Void"

18. Was sind die Merkmale der Art des Typs?wchar._ t. imVisuell C.++ ?

Charientyp-Variablen (siehe vorherige Elemente) werden verwendet, um 8-Bit-ASCII -Simvols zu sparen.

Der Typ WChar_T wird verwendet, um Zeichen zu speichern, die Teil von großen Zeichensätzen sind. In dem chinesischen Alphabet gibt es beispielsweise eine große Anzahl von Zeichen. 8 Entladungen reichen nicht aus, um den gesamten Satz chinesischer Alphabet-Zeichen vorzustellen. Wenn Sie das Programm auf dem internationalen Markt verwenden müssen, ist es daher ratsam, den Typ CHAR auf WCHAR_T zu ersetzen.

Beispiel Verwendung von Typ WChar_T.

... wchar_t t; // für variable T zugeordnete 2 Speicherbytes t \u003d "S"; ...

Zuletzt aktualisiert: 19.09.2017

Jede Variable hat einen bestimmten Typ. Und dieser Typ bestimmt, welche Werte eine Variable aufweisen können, welche Operationen dadurch hergestellt werden können und wie viel Byte im Speicher, in dem es eingenommen wird. Die folgenden grundlegenden Datentypen sind in C ++ definiert:

    bOOL: logischer Typ. Kann einen der beiden Werte true (Wahrheit) und falsch (Lügen) nehmen. Die Größe des belegten Speicherplatzes für diesen Typ ist definitiv nicht definiert.

    zeichen: Stellt ein Zeichen in der ASCII-Kodierung dar. Es braucht Speicher 1 Byte (8 Bit). Kann einen beliebigen Wert aus dem Bereich von -128 bis 127 oder von 0 bis 255 speichern

    signiertes Zeichen: Stellt einen Charakter dar. Es braucht Speicher 1 Byte (8 Bit). Kann einen beliebigen Wert aus dem Bereich von -128 bis 127 speichern

    unsigned Char: stellt einen Charakter dar. Es braucht Speicher 1 Byte (8 Bit). Kann einen beliebigen Wert aus dem Bereich von 0 bis 255 speichern

    wchar_t: stellt ein erweitertes Symbol dar. Unter Windows genommen Speicher 2 Bytes (16 Bit) auf Linux - 4 Bytes (32 Bit). Kann einen beliebigen Wert aus dem Bereich von 0 bis 65 535 (bei 2 Byte) oder von 0 bis 4 294 967 295 (für 4 Bytes) speichern.

    char16_t: repräsentiert ein Zeichen in der Unicode-Codierung. Es braucht Speicher 2 Bytes (16 Bit). Kann einen beliebigen Wert aus dem Bereich von 0 bis 65 535 speichern

    char32_t: stellt ein Zeichen in der Unicode-Codierung dar. Es braucht den Speicher 4 Bytes (32 Bit). Kann einen Wert aus dem Bereich von 0 bis 4 294 967 295 speichern

    short: stellt eine Ganzzahl im Bereich von -32768 bis 32767 dar. Es dauert Speicher 2 Bytes (16 Bit).

    Dieser Typ hat auch Synonyme für kurze int, signiertes kurzes, kurz unterzeichnet, kurz unterzeichnet.

    unsigned Short: präsentiert eine ganze Zahl im Bereich von 0 bis 65535. Es dauert den Speicher 2 Bytes (16 Bit).

    Dieser Typ hat auch ein Synonym für unsignierte kurze Int.

    int: stellt eine Ganzzahl dar. Je nach Prozessorarchitektur können 2 Bytes (16 Bit) oder 4 Bytes (32 Bit) 2 Bytes einnehmen. Der Bereich der Randwerte kann dementsprechend auch von -32768 bis 32767 (bei 2 Bytes) oder von -2 147 483 648 bis 2 147 483 647 (bei 4 Byte) variieren. In jedem Fall muss jedoch die Größe größer oder gleich der Größe der Art von kurz und weniger sein oder ist gleich groß

    Dieser Typ hat Synonyme unterschrieben int und signiert.

    unsigned Int: stellt eine positive Ganzzahl dar. Je nach Prozessorarchitektur können 2 Bytes einnehmen (16 Bit) oder 4 Bytes (32 Bit), und aufgrund dieses Bereichs von Grenzwerten kann variieren: von 0 bis 65535 (für 2 Bytes) oder von 0 bis 4 294 967 295 (für 4 Bytes).

    Als Synonym für diesen Typ kann nicht signiert werden

    long: stellt eine ganze Zahl im Bereich von -2 147 483 648 bis 2 147 483 647 auf. Er nimmt den Speicher 4 Bytes (32 Bit) an.

    Dieser Typ hat auch Synonyme für langes int, signiertes langes int und lang signiert

    unsigned Long: stellt eine ganze Zahl im Bereich von 0 bis 4 294 967 295 dar. Er nimmt den Speicher 4 Bytes (32 Bit) an.

    Es hat Synonym unsigniert langes int.

    lang lang: präsentiert eine ganze Zahl im Bereich von -9 223 372 036 854 775 808 bis +9 223 372 036 854 775 807. Sie dauert in der Regel in der Regel 8 Bytes (64 Bit).

    Es hat Synonyme langes langes int, signiert lange langes int und lang lang signiert.

    unsigned lang lang: stellt eine ganze Zahl im Bereich von 0 bis 18 446 744 073 709 551 615 dar. Sie dauert in der Regel in der Regel 8 Bytes (64 Bit).

    Es hat Synonym unsigniert lange lange int.

    float: stellt eine echte Anzahl der gewöhnlichen Präzision mit einem schwebenden Punkt im Bereich von +/- 3.4e-38 bis 3,4e + 38 dar. Im Gedächtnis belegt 4 Bytes (32 Bit)

    double: stellt eine reelle Anzahl von Doppelgenauigkeit mit einem Fließpunkt im Bereich von +/- 1,7e-308 bis 1,7de + 308 dar. Im Speicher dauert 8 Byte (64 Bit)

    langes Double: stellt eine echte Anzahl der doppelten Genauigkeit mit einem Fließpunkt von mindestens 8 Bytes (64 Bit) dar. Je nach Größe des Speichers kann der Bereich der zulässigen Werte unterschiedlich sein.

    leere: Geben Sie ohne Wert ein

Somit können alle Arten von Daten außer ungültig in drei Gruppen unterteilt werden: symbolisch (char, wchar_t, char16_t, char32_t), ganzzahlige (kurze, int, lange, lang lange) und schwebende Punktzahlen (Float, doppelt, langes Doppel).

Symbolische Typen

Um die Zeichen in der Anwendung anzuzeigen, werden die Arten von char, wchar_t, char16_t und char32_t verwendet.

Wir definieren mehrere Variablen:

Char c \u003d "d"; wchar_t d \u003d "c";

Charientyp-Variable als Wert dauert ein Zeichen in einzelzitate: Char c \u003d "d". Sie können auch eine Nummer aus dem oben beschriebenen Bereich zuweisen: char c \u003d 120. In diesem Fall ist der Wert der Variablen C das Zeichen, das Code 120 in der ASCII-Symboltabelle aufweist.

Es sollte berücksichtigt werden, dass für die Ausgabe der WARHAR_T-Symbole-Konsole nicht erforderlich ist, um STD :: Cout und den STD :: WCout-Stream zu verwenden:

#Einschließen. int main () (char a \u003d "h"; wchar_t b \u003d "e"; std :: wcout<< a << b << "\n"; return 0; }

Gleichzeitig kann der STD :: WCout-Fluss sowohl mit char und wchar_t zusammenarbeiten. Und der STD :: Cout-Stream für die Variable WCHCHAR_T zeigt seinen numerischen Code anstelle des Symbols an.

In der Norm C ++ 11 werden Typen von char16_t und char32_t hinzugefügt, die auf die Verwendung von Unicode fokussiert sind. Auf der Betriebssystemebene werden jedoch die Streams nicht implementiert, um mit diesen Typen zu arbeiten. Wenn Sie daher die Werte dieser Typen an die Konsole anzeigen müssen, müssen Sie Variablen in die Typen von char oder wchar_t konvertieren:

#Einschließen. int main () (char a \u003d "h"; wchar_t b \u003d "e"; char16_t c \u003d "l"; char32_t d \u003d "o"; std :: cout<< a << (char)b << (char)c << (char)d << "\n"; return 0; }

In diesem Fall, wenn vor Variablen angezeigt wird, wird der char- (-Kartyptyp angezeigt, da die Werte der Variablen B, C und D in den Zeichentyp umgewandelt werden und mit der STD auf der Konsole angezeigt werden können :: Cout Bach.

Intelligente Typen

Integertypen werden von den folgenden Typen dargestellt: kurze, nicht signierte kurze, int-ordentierte int, lange, nicht signierte lange, lange lang lange und unsignierte lang lange langes:

Kurz a \u003d -10; unsigniert kurz B \u003d 10; int c \u003d -30; unsigniert int d \u003d 60; Lang e \u003d -170; unsigniert lange f \u003d 45; Lange lang g \u003d 89;

Arten von Fließkommazahlen

Arten von Floating-Point-Zahlen IILI-Fraktionen sind durch solche Typen als Float, doppelt und langes Double dargestellt:

Float a \u003d -10,45; Doppelt b \u003d 0,00105; Langes doppelte c \u003d 30.890045;

Datentypen

In der obigen Liste ist für jeden Typ die Größe der Größe angegeben. Es ist jedoch erwähnenswert, dass die Grenzgrößen für die Arten von Compilers-Entwicklern unabhängig voneinander auswählen können, basierend auf Computerhardwarefunktionen. Die Norm legt nur die minimalen Werte fest. Zum Beispiel für die Arten von int und kurz beträgt der Mindestwert 16 Bits, für langes Typ - 32 Bit, für einen langen doppelten Typ. Gleichzeitig sollte die Größe des langen Typs nicht weniger als die Art des Typs int sein, und die Größe des Typs int ist nicht kleiner als die Größe der Kurzart, und die Größe des langen doppelten Typs muss sein mehr doppelt. Beispielsweise ist der G ++ - Compiler unter Windows für lange doppelte Verwendungszwecke 12 Bytes und den in Visual Studio eingebetteten Compiler und arbeitet auch unter Windows für lange doppelte Verwendungen 8 Bytes. Das heißt, auch innerhalb derselben Plattform können verschiedene Compiler auf unterschiedliche Weise an die Größe einiger Datentypen angegangen werden. Im Allgemeinen werden diese Abmessungen jedoch oben verwendet, wenn Sie Datentypen beschreiben.

Es gibt jedoch Situationen, in denen Sie genau die Größe eines bestimmten Typs wissen müssen. Dafür gibt es in C ++ ein SizeOf (), der die Speichergröße in Bytes zurückgibt, in der die Variable dauert:

#Einschließen. Int Haupt () (lange doppelte Zahl \u003d 2; std :: cout<< "sizeof(number) =" << sizeof(number); return 0; }

Console-Schlussfolgerung beim Kompilieren in G ++:

sizeOf (Nummer) \u003d 12

Gleichzeitig ist es bei der Ermittlung der Variablen wichtig, zu verstehen, dass der Wert der Variablen nicht über die für den Typ beschriebenen Grenzwerte hinausgehen sollte. Beispielsweise:

Vorzeichenlose kurze Zahl \u003d -65535;

Der G ++ - Compiler, wenn das Programm mit dieser Zeichenfolge zusammengestellt wird, ergibt ein Fehler, dass der Wert -65535 nicht im Bereich der gültigen Werte für die Art des nicht signierten Kurzmittels enthalten ist und abgeschnitten ist.

In Visual Studio kann die Zusammenstellung ohne Fehler passieren, die variable Nummer wird jedoch einen Wert von 2 - das Ergebnis der Umwandlung der Zahl -65535 an den nicht signierten Short-Typ empfangen. Das heißt, das Ergebnis ist wiederum nicht genau der, der erwartet wird. Der Wert der Variablen ist nur ein Satz von Bits im Speicher, die entsprechend einem bestimmten Typ interpretiert werden. Für verschiedene Arten kann derselbe Satz von Bits auf unterschiedliche Weise interpretiert werden. Daher ist es wichtig, die Wertebereiche für den einen oder anderen beim Zuweisen eines variablen Werts zu berücksichtigen.

Auto-Spezifizierer.

Manchmal ist es schwierig, die Art des Ausdrucks zu bestimmen. Und nach den neuesten Standards können Sie einen Compiler bereitstellen, um die Art des Objekts anzuzeigen. Und dafür gilt der automatische Spezifizierer. Wenn wir in diesem Fall die Variable mit dem Auto-Spezifizierer bestimmen, muss diese Variable mit einem beliebigen Wert initialisiert werden:

Auto-Nummer \u003d 5;

Basierend auf dem zugewiesenen Wert zeigt der Compiler die Art der Variablen an. Initialisierte Variablen mit Auto-Spezifizierer sind nicht zulässig.

Fortsetzung des Themas:
W-lan

Zu wissen, warum das Telefon erhitzt wird, kann der Benutzer versuchen, seine Temperatur zu reduzieren. Dies wird dazu beitragen, eines der häufigsten Probleme zu lösen - obwohl er damit konfrontiert ist ...