Neuer Datentyp als Klasse... Operatoren / Speicherung / memcpy...
-
Hallo,
ich schreibe gerade einen neuen Datentyp als Klasse, genannt Double Quadruple Long (256 Bit).
Ich möchte wenn möglich alle Operatoren überladen.
<< und >> sind jetzt aber eigentlich für Eingabe und Ausgabe gedacht, kann ich sie denn zusätzlich für Bitshifting überladen?Dann hätte ich noch eine Frage zur internen Speicherung:
Momentan speichere ich das ganze folgendermaßen:
union { long m_l[8]; }m_dql;
Natürlich ist hier auch nichts überladen. Würdet ihr das anders gestalten?
Das Ganze soll jetzt natürlich auch möglichst portabel sein, darf ich memcpy nutzen oder ist das nur Windows?
Eigentlich soll die Klasse für den Datentyp Double Quadruple sein, der ebenfalls 256 Bit ist, allerdings ein Fließkommazahlendatentyp sein soll.
Dafür wollte ich erst mal alles in einen normalen Typen einbauen, damit ich das mit den Bits hinterher besser hinbekomme.Es gibt nicht zufällig die Möglichkeit alle 256 Bits in einem Dingsbums zu haben?
Ist dafür villeicht eine STL Klasse definiert?MfG MAV
-
natürlich kannst du deine >> und << operatoren auch für bitshifting überladen.
wenn du weißt, wie fließkommezahlen intern dargestellt werden, dürfte es auch kein problem sein, das mit 256 bits umzusetzen; allerdings fehlt dann die unterstützung der Floating point unit.
allerdings stellt sich hier dann die frage, ob es nicht besser wäre, eine bereits fertige mathe-library zu verwenden.
vom standard gibt es nur noch bitset (und vector<bool>), die uU geeignet wären.
-
Hi,
ja, den IEEE Standard habe ich gerade gelernt.
Meinst du, dass es Quatsch ist, einen Typ über den anderen zu realisieren?MfG MAV
-
@davie: Ich denke std::bitset ist eher weniger geeignet dafür.
-
ich hab ihm nur gesagt, welche möglichkeiten der standard bietet, 256 bits zu verwalten