konvertieren von long long int und der andere Weg zurück in c++
Wie die Konvertierung von long nach int und die anderen den Weg zurück in die c++ ??
auch, was sind die Eigenschaften von lange, lange , vor allem die maximale Größe
vielen Dank im Voraus ..
InformationsquelleAutor der Frage Loers Antario | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Typ long long ist in der Regel 64 bits.
Typ int ist wahrscheinlich 32 bit, aber nicht auf allen Maschinen.
Wenn Sie die Umwandlung eines int in ein long long, die Sie tun können,
und es wird gut. Wenn Sie gehen in die andere Richtung, wie
und die int ist kleiner als 64-bits, Sie werden nicht in der Lage zu halten alle Informationen, so kann das Ergebnis nicht korrekt sein.
InformationsquelleAutor der Antwort David
int
ist garantiert mindestens 16 bit breit. Auf modernen Systemen ist es meist 32 bit (auch bei 64-bit-Systeme).long long
die ursprünglich nicht vorhanden in C++ garantiert mindestens 64 bit breit. Es ist fast immer genau 64 bit breit.Den üblichen Weg zur Konvertierung eines Werts von einem integer-Typ in einen anderen Typ ist einfach zu zuordnen. Eventuell notwendige Konvertierung durchgeführt werden implizit. Zum Beispiel:
Für eine einschränkende Konvertierung, in dem der Ziel-Typ kann nicht repräsentieren alle Werte des quelltyps, es gibt ein Risiko von überlauf;
int
möglicherweise oder möglicherweise nicht in der Lage zu halten, den Wert9223372036854775807
. In diesem Fall, das Ergebnis ist Implementierung-definiert. Die wahrscheinlichste Verhalten ist, dass die high-order bits werden verworfen; zum Beispiel die Umwandlung von9223372036854775807
zuint
könnte2147483647
. (Dies wird deutlicher in hexadezimal; die Werte sind0x7fffffffffffffff
und0x7fffffff
beziehungsweise.)Wenn Sie brauchen, um zu konvertieren explizit verwenden, können Sie ein cast. Ein C-style-cast verwendet Sie den Typnamen in Klammern:
Oder Sie verwenden ein C++-Stil
static_cast
:ist etwas sicherer als ein C-style cast, da ist es beschränkt, in denen Arten kann es funktionieren.
InformationsquelleAutor der Antwort Keith Thompson
Größe von int nur 2 bytes, während die andere ist in der Regel größer als int. Also, wenn Sie schauen, um zu konvertieren in int, dann würden Sie am Ende verlieren Daten. Aber der andere Weg ist möglich, ohne dabei die Korrektheit der Informationen.
Angenommen
a
ist der lange Typ undb
ist von Typ int. Dann int auf long covertion:a=(long)b;
. Für den anderen Weg:b=(int)a;
.InformationsquelleAutor der Antwort ASHUTOSH