Beste Antwort
Unterschied s / w kurz und lang int
Nun, der Unterschied ist sehr gering, kann aber in einigen Fällen sehr wichtig sein. Bei der Programmierung ist das zweitwichtigste Ziel (nachdem das Programm das getan hat, was es soll), Speicherplatz zu sparen, damit das Programm so schnell wie möglich ausgeführt wird. Hier kommt Ihr Schlüsselwort „long“ ins Spiel. Long ist eine Ganzzahl, aber Integer ist nicht genau ein langes Verständnis? Es gibt auch ein „short“. Jetzt werden diese normalerweise mit int nach ihnen referenziert, aber es ist nicht erforderlich Der Unterschied zwischen ihnen ist ihre Größe. Abhängig vom Computer, aber in den meisten Fällen ist ein „kurz“ zwei Bytes, ein „lang“ vier Bytes und ein „int“ zwei oder vier Bytes. In Programmen ist es wichtig, dass Sie es deklarieren kurz oder lang, wenn Sie genau wissen, wie groß die Zahl sein wird und wie oft sie geändert wird, damit Sie so viel Speicher wie möglich sparen können. Nun zu dem Bereich, der von der Größe des int abhängt, ob es sich um eine handelt beträgt zwei oder vier Bytes. Hier ist eine Tabelle mit Referenzgrößen und -werten.
Typgrößenbereich
kurze int 2 Bytes -32.768 bis 32.767
lange int 4 Bytes -2.147.483.648 bis 2.147.483.647
int (16 Bit) 2 Bytes -32.768 bis 32.767
int (32 Bit) 4 Bytes -2.147 , 483,648 bis 2,147,483,647
Differenz S / w Float- und Double
Gleitkommazahlen, auch als Real bezeichnet Zahlen werden bei der Auswertung von Ausdrücken verwendet, die eine gebrochene Genauigkeit erfordern. Beispielsweise führen Berechnungen wie Quadratwurzel oder transzendentale wie Sinus und Cosinus zu einem Wert, dessen Genauigkeit einen Gleitkommatyp erfordert. Java implementiert den Standardsatz (IEEE – 754) von Gleitkommatypen und Operatoren. Es gibt zwei Arten von Gleitkommatypen, float und double, die Zahlen mit einfacher bzw. doppelter Genauigkeit darstellen. Ihre Breite und Bereiche werden hier angezeigt:
Namensbreite im Bitbereich
double 64 1 .7e – 308 bis 1.7e + 308
float 32 3 .4e – 038 bis 3.4e + 038
Jeder von diesen Als nächstes werden Gleitkommatypen untersucht.
float
Der Typ float gibt einen Wert mit einfacher Genauigkeit an, der 32 Bit Speicher verwendet. Die einfache Genauigkeit ist auf einigen Prozessoren schneller und nimmt halb so viel Platz ein wie die doppelte Genauigkeit. Sie wird jedoch ungenau, wenn die Werte entweder sehr groß oder sehr klein sind. Variablen vom Typ float sind nützlich, wenn Sie eine Bruchkomponente benötigen, aber kein hohes Maß an Präzision benötigen. Beispielsweise kann float nützlich sein, wenn Dollar und Cent dargestellt werden.
Hier einige Beispiele für float-Variablen Deklarationen:
float hightemp, lowtemp;
double
Die doppelte Genauigkeit, wie durch das Schlüsselwort double angegeben, verwendet 64 Bit zum Speichern eines Werts. Die doppelte Genauigkeit ist bei einigen modernen Prozessoren, die für Hochgeschwindigkeitsmathematik optimiert wurden, tatsächlich schneller als die einfache Genauigkeit Berechnungen: Alle transzendentalen mathematischen Funktionen wie sin (), cos () und sqrt () geben doppelte Werte zurück. Wenn Sie die Genauigkeit vieler iterativer Berechnungen beibehalten müssen oder Zahlen mit großen Werten bearbeiten, ist double die beste Wahl
Hier ist ein kurzes Programm, das doppelte Variablen verwendet, um die Fläche eines Kreises zu berechnen:
// Berechne th Der Bereich eines Kreises.
Klassenbereich {
public static void main (String args []) {
double pi, r, a;
r = 10,8; // Radius des Kreises
pi = 3.1416; // pi, ungefähr
a = pi * r * r; // Bereich berechnen
System.out.println („Kreisfläche ist“ + a);
}
}
Antwort
Wie üblich hängt davon ab . Die genaue Größe von Shorts und Longs bleibt dem Compiler-Implementierer überlassen, der Darstellungen auswählt, die am besten zur Zielarchitektur passen. Es ist möglich (aber unwahrscheinlich), dass sizeof(short) == sizeof(int) == sizeof(long)
, was bedeutet, dass sie alle gleich sind. Die einzige Garantie, die Sie haben, ist, dass die Größe eines Short kleiner oder gleich der Größe eines Long ist. Verwenden Sie für genaue Größen den Header
. Um die hässlichen Details zu abstrahieren, verwenden Sie die Vorlage std::numeric\_limits
aus
.
Ähnliche Überlegungen gelten für float und double, aber hier ist es wahrscheinlicher, dass float
eine Gleitkommazahl mit einfacher Genauigkeit (4 Byte) darstellt und double
eine Gleitkommazahl mit doppelter Genauigkeit (8 Byte).Es wurde zu viel Software geschrieben, die IEEE 754 voraussetzt , sodass Compiler-Autoren weniger wahrscheinlich von den Regeln abweichen.