Binäre Operatoren bei Gleitkommatypen
-
Hallo Leute,
ich hab folgendes Problem,
ich muss eine Verschiebeoperation in einem double Typ machen
double t; t^=input[0]; t<<8; t^=input[1]; t<<8; usw.
Nur sagt mir der Compiler das die Überladung operator<<(double,int) nicht existiert...gibt es dafür eine Lösung?
-
*(10^8) !?
-
Was willst du durch das schieben von Gleitkommazahlen erreichen? Das Ergebniss ist doch kaum vorhersagbar wenn man sich nicht von vornherein Gedanken macht wie so ein Gleitkommawert implementiert ist.
-
Ich hab in einem binären String ein Doublewert der aber schon in der doublefestlegung drinnensteht (mantisse->exponent->zahl) . Dieser Doublewert muss jetzt in eine einzige Doublevariable reinkopiert werden. Das Auslesen des binären Strings erfolgt Byteweise. Nun hab ich mir überlegt ich nehm ein byte kopier das mit exklusiv-oder an die unterste Stelle und dann schieb ich die double variable um 8 Bit rüber...nur gibt es keine Überladung zum Verschieben. Weiss jemand eine Lösung?
-
Oki, das klingt nach ner sinnvollen Anwendung Auch wenn derjenige der sich ausgedacht hat die einzelnen Bytes eines Doubles als String zu senden schon arg seltsam gedacht hat...
Schau dir mal die BitConverter an, mit der kannst du das leicht erledigen.
-
Talla schrieb:
Oki, das klingt nach ner sinnvollen Anwendung Auch wenn derjenige der sich ausgedacht hat die einzelnen Bytes eines Doubles als String zu senden schon arg seltsam gedacht hat...
Schau dir mal die BitConverter an, mit der kannst du das leicht erledigen.Mir ist egal ob das seltsam ist oder nicht...ich kann da nix machen...Meinst Du übrigens die BitConverterClass? Kann man den nicht mit normalen Hausmitteln einen einfachen Bitzugriff auf eine DoubleVariable ermöglichen also mit & | ??
-
Die Klasse heisst BitConverter.
http://msdn.microsoft.com/en-us/library/system.bitconverter.aspx
-
Mit Spatzen auf Kanonen geschossen:
t=*(double*)&BitStream[XY];
erbrachte den Erfolg...
-
Das ist dann aber sicherlich kein C++/CLI mehr und du wärst im falschen Forum