Heim > Backend-Entwicklung > C++ > Warum ist „long long' für die Verarbeitung großer Ganzzahlen in C/C unerlässlich?

Warum ist „long long' für die Verarbeitung großer Ganzzahlen in C/C unerlässlich?

Mary-Kate Olsen
Freigeben: 2024-11-08 09:18:02
Original
763 Leute haben es durchsucht

Why is  'long long'  essential for handling large integers in C/C  ?

„long long“ in C/C verstehen

In C/C ist der Bereich der Datentypen entscheidend für den Umgang mit numerischen Werten. Der Datentyp „long long“ wurde eingeführt, um größere Ganzzahlwerte als der Standardtyp „long“ zu berücksichtigen, was noch präzisere Operationen ermöglicht.

Beachten Sie den folgenden C/C-Codeausschnitt:

#include <stdio.h>

int main() {
    int num1 = 1000000000;
    long num2 = 1000000000;
    long long num3;
    long long num4 = ~0;

    printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3));
    printf("%d %ld %lld %llu", num1, num2, num3, num4);
    return 0;
}
Nach dem Login kopieren

Bei der Ausführung gibt dieser Code die folgende Ausgabe aus:

4 4 8
1000000000 1000000000 0 18446744073709551615
Nach dem Login kopieren

Die Ausgabe zeigt einige interessante Dinge Verhalten:

  • Die Größe von „long long“ beträgt 8 Bytes, doppelt so viel wie „int“ und „long“.
  • Der Wert von „num1“ passt in ein „int“. ', damit es genau gedruckt wird.
  • 'num2' hat den gleichen Wert wie 'num1', aber sein 'long'-Typ ermöglicht die Darstellung größerer Werte Zahlen.
  • 'num3' wird anfänglich kein Wert zugewiesen, daher wird es als 0 ausgegeben.
  • 'num4' wird die bitweise Umkehrung von 0 zugewiesen, was zu seinem maximal möglichen Wert in einem ' führt. long long'.

Jetzt lasst uns die Kommentierung des Kommentierten aufheben Zeile:

num3 = 100000000000;
Nach dem Login kopieren

Die Kompilierung schlägt mit dem Fehler fehl: „Fehler: Ganzzahlkonstante ist zu groß für langen Typ.“ Dies liegt daran, dass der Literalwert „100000000000“ den Maximalwert überschreitet, der durch einen „long“-Typ dargestellt werden kann. Um dieses Problem zu beheben, müssen wir angeben, dass dieses Literal ein „long long“ ist, indem wir das Suffix LL verwenden:

num3 = 100000000000LL;
Nach dem Login kopieren

Mit dieser Änderung wird der Code erfolgreich kompiliert und ausgeführt. Die Ausgabe enthält jetzt den korrekten Wert für „num3“:

4 4 8
1000000000 1000000000 100000000000 18446744073709551615
Nach dem Login kopieren

Dieser Code veranschaulicht die Bedeutung von Datentypen und die Verwendung des Typs „long long“ zur Verarbeitung großer Ganzzahlwerte in der C/C-Programmierung.

Das obige ist der detaillierte Inhalt vonWarum ist „long long' für die Verarbeitung großer Ganzzahlen in C/C unerlässlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage