Die Einschränkungen von ganzen Zahlen in C ++

Das int

Menu

Variablentyp ist die C ++ Version einer ganzen Zahl. int Variablen leiden die gleichen Einschränkungen wie ihre Zählung-Zahl integer Äquivalente in Mathematik zu tun.

Integer Abrundungs

Lopping den Bruchteil einer Zahl aus aufgerufen Abschneiden. Betrachten Sie das Problem, den Mittelwert von drei Zahlen zu berechnen. Da drei int Variablen - nValue1, nValue2, und nValue3 - eine Gleichung, die zur Berechnung durchschnittliche

int nAverage- int nValue1- int nValue2- int nValue3-nAverage = (nValue1 + nValue2 + nValue3) / 3-

Da alle drei Werte ganze Zahlen sind, die Summe angenommen, eine ganze Zahl zu sein. In Anbetracht der Werte 1, 2 und 2 ist die Summe 5. Kluft, die durch 3, und Sie erhalten 12 # 8260-3, oder 1,666. C ++ verwendet etwas andere Regeln: Da alle drei Variablen nValue1, nValue2, und nValue3 ganze Zahlen sind, wird die Summe ebenfalls eine ganze Zahl angenommen werden.

Das Ergebnis der Division einer ganzen Zahl durch eine andere ganze Zahl ist auch eine ganze Zahl ist. Somit wird der sich ergebende Wert von nAverage ist die unvernünftig, aber logischen Wert von 1.

Das Problem ist viel schlechter in der folgenden mathematisch äquivalente Formulierung:

int nAverage- int nValue1- int nValue2- int nValue3-nAverage = nValue1 / 3 + nValue2 / 3 + nValue3 / 3-

Aufstecken in den gleichen 1, 2, und 2-Werte, die sich ergebende Wert von nAverage 0 (Vortrag über unzumutbare). Um zu sehen, wie dies geschehen kann, bedenkt, dass 1 # 8260-3 kürzt auf 0, 2 # 8260-3 bis 0 abschneidet und 2 # 8260-3 kürzt auf 0. Die Summe von 0, 0 und 0 ist 0. Sie dass die ganze Zahl Abschneiden sehen kann, kann völlig inakzeptabel.

Begrenzte Bereich

Ein zweites Problem bei der int Variablentyp ist seine begrenzte Reichweite. Ein normaler int Variable kann einen Maximalwert von 2.147.483.647 speichern und einen Minimalwert von -2147483648 - etwa von positiven 2 Milliarden auf negativ 2 Milliarden, für eine Gesamtreichweite von über 4 Milliarden.

Zwei Milliarden ist eine sehr große Zahl: groß genug für die meisten Anwendungen. Aber es ist nicht groß genug für einige Anwendungen, einschließlich Computertechnik. In der Tat, Ihr Computer führt wahrscheinlich schneller als 2 Gigahertz, je nachdem, wie alt Ihr Computer ist. (Giga das Präfix Milliarden bedeutet.)

Ein einzelner Strang von Kommunikationsfaser - die Art, die hin und her von einem Ende des Landes zum anderen aufgereiht ist schon - kann viel mehr als 2 Milliarden Bits pro Sekunde verarbeiten.

Menü