![]() |
ok, stimmt, müsst ohne dem ganzen & auch gehen
wobei _m3s lösung auch halbwegs elegant aussieht |
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? |
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. |
elegant schon aber leider falsch ...
|
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. |
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 ...)
|
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. |
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