Bit einer Variable
-
Tach,
da einige immer wieder fragen, wie man z.B. fuer ein int 48 bit konstruiren kann,
habe ich mir einen loesungs Vorschlag ausgedacht.
Kann mir jemand sagen, ob das so gehen koennte?man ueberladet den operator new, welche dann mit malloc 48bit reserviert.
dannach muss man nur noch *int i=new int; machen.Gruss,
Ghost
-
Hab jetzt mein schlaues Buch nicht hier, aber war es nicht so, dass man operatoren für Built-Ins nicht überladen konnte.
-
Wie willst du damit dann rechnen? Dürfte für den Compiler ziemlich schwierig werden die 48bit-Ints wie 32Bit-Ints zu behandeln. Denke da z.B. an die Register der CPU. Wenn die nur 32Bit groß sind, wie soll die CPU dann mit den 48Bit-Werten rechnen?
Du wirst an dieser Stelle deshalb nicht drumherum kommen die Rechenoperationen neu zu proggen und einen anderen Typ-Namen zu verwenden.
-
Warums schreibst du nicht gleich ein template Interger<int bits> ?
Damit könntest du dann beliebig große Integer anlegen.
Devil
-
Ich muss ja nichts schreiben.
Mir kam da nur so der gedanke, wie man es machen koennte.
Und wollte fragen, ob man das so erstellen koennte.wenn man ein 48bit wert hat, ist ein 64bit bord voraussetzung.
Ghost
-
Green_Ghost(logout) schrieb:
wenn man ein 48bit wert hat, ist ein 64bit bord voraussetzung.
Nicht wirklich. ZB können 32 Bit x86 Systeme ja auch mit 64 Bit Integern rechnen. Zwar etwas tricky, aber es geht.
Btw, deine Idee mit dem Überladen von new ist denkbar schlecht. Mal abgesehen davon, dass es nicht funktioniert, kann niemand bei der Verwendung von int die explizite Anforderung einer 48 Bit Ganzzahl erkennen. Zudem fehlt der CPU immer noch das Wissen, wie man damit rechnet, sofern dieses nicht nativ unterstützt wird.
Und wie man sich ein 48 Bit int selber baut, hatten wir erst vor kurzem.
-
groovemaster schrieb:
Green_Ghost(logout) schrieb:
wenn man ein 48bit wert hat, ist ein 64bit bord voraussetzung.
Nicht wirklich. ZB können 32 Bit x86 Systeme ja auch mit 64 Bit Integern rechnen. Zwar etwas tricky, aber es geht.
Btw, deine Idee mit dem Überladen von new ist denkbar schlecht. Mal abgesehen davon, dass es nicht funktioniert, kann niemand bei der Verwendung von int die explizite Anforderung einer 48 Bit Ganzzahl erkennen. Zudem fehlt der CPU immer noch das Wissen, wie man damit rechnet, sofern dieses nicht nativ unterstützt wird.Stimmt, habe ich nicht bedacht.
groovemaster schrieb:
Und wie man sich ein 48 Bit int selber baut, hatten wir erst vor kurzem.
Darum schrieb ich diesen Post.
Es nahm mich wunder, ob man es auf diese Art auch machen koennte.
Die Antwort hab ich jetzt ja
Aber selbst muss ich die Aufgabe ja nicht loesen.thx,
Ghost