WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C++ und ein problem mit __int64 (http://www.wcm.at/forum/showthread.php?t=69716)

Who-T 12.09.2002 17:45

ok, stimmt, müsst ohne dem ganzen & auch gehen

wobei _m3s lösung auch halbwegs elegant aussieht

it00x30 12.09.2002 19:20

danke erst einmal.

das mit dem format-string vom printf muss ich übersehen haben ...

die methode mit bitschift geht leider nicht (hab ich schon lange ausporbiert ...)

inzwischen hab ich aber herausgefunden wies geht (ganz einfach, wenn mans genau nimmt)

der fehler ist, dass man nicht im binärsystem denken darf, sondern im dezimalsystem:

__int64 i = 123456789876;

//der highPart
long high = i / 1000000000; //also 123

//der lowpart
long low = i % 1000000000; //also 456789876

ist doch ganz einfach oder?

irrsinn 13.09.2002 13:10

warum findet ihr bitshifting nicht elegant? is doch sicher die schnellste möglichkeit sowas zu tun?
vielleicht abgesehn von der eingebauten funktionalität, die _m3 ausgegraben hat.

it00x30 13.09.2002 14:45

elegant schon aber leider falsch ...

irrsinn 15.09.2002 22:00

wollt nur wissen, obs grundsätzlich was gegen bitshifting einzuwenden gibt, von dem ich noch nix weiß.

natürlich sollte mans nur verwenden, wenn man auch weiß um wie viele stellen und in welche richtung man shiften will.

it00x30 16.09.2002 08:38

im gegenteil, bitshifting bzw bitwise operations verwend ich sehr gerne - erstens gibts nichts schnelleres, und zweitens kann man viele sachen sehr elegant lösen (zb eine flag-variable, die 32 flags darstellt - wenn man das ding schön kommentiert ist es doch viel besser als 32 XYZFlag-variablen zu halten ...)

stz 16.09.2002 11:49

I64-Problem
 
Wenn man den expandierten Assemblercode des printf-Aufrufs mit dem richtigen Formatstring analysiert kommt man drauf, dass MS auch nur die shift-Methode verwendet. Aber wer kennt heute noch Assembler.
Stz.

it00x30 16.09.2002 13:05

mir kommt der verdacht, dass die shift-methode nur an mir gescheitert ist ... ;-)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag