![]() |
C++ und ein problem mit __int64
hi,
microsofts compiler unterstützen den datentyp __int64 (also 8 byte) so weit so gut, mein problem ist, dass ich diesen datentypen in ein file schrieben muss und keine ahnung habe wie, (printf("%d", i64XXX); konvertiert zu long und verfälscht so die zahl) hat jemand eine idee, wie ich die acht byte in 2 longs (4byte) umwandeln kann, die jeweils die erste hälfte und die zweite hälfte des __int64 repräsentieren? danke für die hilfe |
ja mit shift right.
__int64 li; long ll; long lh; ll = (long) li; lh = (long) li >> 32; |
hmm, über bitshifting wär eine möglichkeit, is aber sicher nicht die schönste
Code:
unsigned long first4bytes; |
is zwar schon länger her :-)
l_high = int64 / 1024;
l_low = int64 - (l_high*1024); printf("&d&d",l_high,l_low); vielleicht kompliziert, müsst oba gehn |
Re: is zwar schon länger her :-)
Zitat:
l_high = int64 /1024; enspricht: l_high = int64 >> 10; is also ein bisserl zu wenig. |
stimmt
i hob jo versucht mein post zu löschn, oba irgendwie geht des nit
hob do wos mit de bit verwechselt :D |
Zitat:
|
jo des geht irgendwie nur ganz kurz nachm post oder so, i a bisserl komisch.:)
generell wollte ich noch sagen: Widermal ein feature von M$ mit dem es selber nicht klarkommt. |
Zitat:
|
http://msdn.microsoft.com/library/de...html/int64.asp
Zitat:
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 09:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag