C ++ unsignierte Ganzzahlen

C ++ unsignierte Ganzzahlen
Der Ganzzahl-Datentyp in C ++ wird weiter in viele Untertypen unterteilt. Ein solcher Untertyp sind die nicht signierten Ganzzahlen. Die nicht signierten Ganzzahlen können nur die positiven ganzen Zahlen speichern. Die nicht signierten Ganzzahlen in C ++ werden bevorzugt, während Bits in Betriebssystemen manipuliert werden, da Sie über einen begrenzten Speicherplatz verfügen. Darüber hinaus können sie auch für die Array -Indexierung verwendet werden, da der Index eines Arrays niemals negativ sein kann. Dieser Artikel ist der Diskussion der nicht signierten Ganzzahlen in C ++ in Ubuntu 20 gewidmet.04.

Die Größe der nicht signierten Ganzzahlen in C ++:

Die Größe einer typischen unsignierten Ganzzahl in C ++ beträgt 4 Bytes. Um dies zu bestätigen, können Sie sich den folgenden Code -Snippet ansehen:

In diesem Code -Snippet haben wir gerade die Anweisung "Cout" mit der Funktion "sizeof" verwendet. Der Parameter, den wir in diese Funktion implementiert haben, ist "Unsigned INT". Dies bedeutet, dass diese Aussage die Größe einer nicht signierten Ganzzahl in Bytes zurückgibt.

Nachdem wir diesen C ++ - Code -Snippet ausgeführt haben, haben wir die im folgende Bild gezeigte Ausgabe erhalten, was bestätigt, dass die nicht signierte Ganzzahl in C ++ die Größe von 4 Bytes hat:

Wie man eine nicht signierte Ganzzahl in C deklariert++?

Unsignierte Ganzzahlen können in C sehr leicht deklariert werden++. Sie können den folgenden Code -Snippet sehen.04:

In diesem Code -Snippet haben wir eine unsignierte Ganzzahl mit der Anweisung "Unsigned int var" deklariert und ihm den Wert "255" zugewiesen. Dann haben wir die Anweisung "Cout" verwendet, um den Wert dieser nicht signierten Ganzzahl am Terminal anzuzeigen.

In welchen Szenarien sollten wir es vermeiden, die nicht signierten Ganzzahlen in C zu verwenden++?

Es gibt bestimmte Situationen, in denen die Verwendung der nicht signierten Ganzzahlen in C ++ streng vermieden werden sollte, da dies zu einigen hochfehlerhaften Ausgängen führen kann. Diese Fehler können nicht einfach durch Betrachtung des C ++ - Code erfasst werden. Darüber hinaus können sie auch nicht zur Kompilierungszeit erkannt werden. Stattdessen können Sie diese Fehler nur dann fangen, sobald Sie Ihren C ++ - Code ausgeführt haben. Schauen wir uns einige dieser Szenarien an, damit Sie es vermeiden können, die nicht signierten Ganzzahlen in C ++ in diesen Fällen zu verwenden.

Szenario Nr. 1: Zuweisen einer negativen Zahl einer unsignierten Ganzzahlvariablen:

Die nicht signierten Ganzzahlen werden verwendet, um nur die nicht negativen ganzen Zahlen zu halten. Der Programmierer kann jedoch einer unsignierten Ganzzahlvariablen weiterhin eine negative Zahl zuweisen. Diese negative Zahl wird immer auf die nächste Zahl innerhalb des Bereichs gewickelt. Dieses Konzept ist als Modulo -Wrack bekannt. In diesem Fall wird kein Fehler erzeugt, aber der Wert, den Sie erhalten, ist definitiv nicht der richtige. Sie können den folgenden Code -Snippet überprüfen, um dies zu verstehen:

In diesem Code-Snippet haben wir den Wert "-1" einer unsignierten Ganzzahlvariablen zugewiesen. Um zu überprüfen, ob der korrekte Wert auf dem Terminal gedruckt wird oder nicht, haben wir die Anweisung "Cout" mit der Variablen "var" verwendet.

Nachdem wir diesen Code ausgeführt hatten, haben wir erfahren, dass der Wert der nicht signierten Ganzzahlvariablen anstelle von „-1“ „4294967295“ wurde, wie im Bild unten gezeigt:

Szenario Nr. 2: Durchführung der Subtraktion zweier nicht signierter Ganzzahlen, in denen die zu subtrahierende Zahl größer ist als die Anzahl, die abtrahiert werden soll:

Wenn wir eine Subtraktion von zwei Ganzzahlen in einer Situation durchführen, in der die erste Zahl kleiner als die zweite ist, erhalten wir immer eine negative Ausgabe. Daher sollten wir in dieser Situation niemals die nicht signierten Ganzzahlen nutzen. Der folgende Code -Snippet zeigt dies:

In diesem Code -Snippet haben wir zwei nicht signierte Ganzzahlen, "var1" und "var2", deren Werte "2" bzw. "7" sind. Wir wollten „2“ von „7“ abziehen. Das Ergebnis dieser Subtraktion ist "-5". Sie müssen jedoch diesen Code -Snippet ausführen, um herauszufinden, wie diese Subtraktion mit nicht signierten Ganzzahlen funktioniert.

Die Ausführung dieses Code -Snippets erzeugte das im folgende Bild gezeigte Ergebnis. Auch wenn wir keine Fehlermeldung erhalten haben, stellte sich unsere Ausgabe immer noch als falsch heraus.

Szenario Nr. 3: Verwenden der nicht signierten Ganzzahlen mit bedingten Aussagen:

Es gibt einige Bedingungen, die ausgeführt werden, wenn eine Variable geringer ist als eine andere. Wenn wir jedoch die negativen und positiven Zahlen vergleicht, während wir die nicht signierten Ganzzahlen verwenden, kann das Ergebnis unerwartet sein. Um dies zu erläutern, haben wir den folgenden Code -Snippet entworfen:

In diesem Code-Snippet haben wir zwei nicht signierte Ganzzahlvariablen, "var1" und "var2", deren Werte "-1" bzw. "1" sind. Dann haben wir eine Anweisung "If", die ausgeführt wird, wenn „var1

Um dies zu beobachten, können Sie die Ausgabe im folgenden Bild sehen. Dieser Ausgangsstaat "var1" ist nicht weniger als "var2", was logisch und mathematisch falsch ist:

Szenario Nr. 4: Aufrufen von Funktionen mit nicht signierten Ganzzahlen:

Manchmal definieren Sie solche Funktionen, die unsignierte ganze Zahlen als Parameter akzeptieren. Auch wenn jemand einen negativen Wert für diese Funktion übergibt, wird er weiterhin aufgerufen, aber zu falschen Ergebnissen führt. Um dies darzustellen, haben wir den folgenden Code -Snippet implementiert:

In diesem Code -Snippet haben wir eine Funktion namens "DisplayNumber", die eine nicht signierte Ganzzahl "num" akzeptiert,. Innerhalb dieser Funktion möchten wir einfach den Wert dieser Zahl auf dem Terminal drucken. In unserer Funktion "main ()" haben wir diese Funktion mit der Nummer "-1" bezeichnet.

Sie können die Ausgabe dieses Code -Snippets in dem unten gezeigten Bild sehen. Nach dieser Ausgabe lautet der Wert der Zahl "4294967295" anstelle von "-1":

Szenario Nr. 5: Verwenden der nicht signierten Ganzzahlen als Schleifenzähler:

Im letzten Szenario werden wir die unsignierte Ganzzahl als Schleifenschalter in C verwenden++. Sie können dies aus dem folgenden Code -Snippet sehen:

In diesem Code -Snippet haben wir eine einfache „für“ Schleife definiert, deren Iterator eine nicht signierte Ganzzahl ist, und wir haben diese nicht signierte Ganzzahl in jeder Iteration verringert. Wir haben uns in einer unendlichen Schleife stecken, als wir diesen Code ausgeführt haben, wie Sie aus der unten gezeigten Ausgabe sehen können. Dies geschah ausschließlich daran, dass in der letzten Iteration, als der Wert des Iterators auf „-1“ verringert wurde, anstatt die Schleife zu brechen, dieser Iterator auf die nächste nicht signierte Ganzzahl gewickelt wurde, deren Wert größer als „5“ war. Dies geschah immer wieder in jeder Iteration, weshalb wir diese Art von Ausgabe haben.

Abschluss:

In diesem Artikel wollten wir über die verschiedenen Aspekte der Verwendung der nicht signierten Ganzzahlen in C ++ in Ubuntu 20 sprechen.04. Erstens haben wir die Größe der nicht signierten Ganzzahlen in C ++ mit Ihnen geteilt, gefolgt von ihrer Erklärung. Danach haben wir die verschiedenen Szenarien erklärt, in denen die Verwendung der nicht signierten Ganzzahlen ausschließlich vermieden werden sollte, indem die Probleme hervorgehoben werden, die sie verursachen können. Nach dem Durchlaufen dieses Artikels werden Sie daher leicht zwischen den Situationen unterscheiden, in denen die nicht signierten Ganzzahlen verwendet werden sollten und nicht verwendet werden sollten und nicht. Wir hoffen, dass Sie diesen Artikel nützlich gefunden haben, und finden Sie in Linux Hint, um mehr informative Artikel zu erhalten.