Ich würde gerne ein par bit's in ein real Wort andreren aber so wir ich das hier probiert hat funktioniert es nicht. Hat da jemand ein ide wir i das machen kann.
Reall.3 := orgrell.15;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich vermute mal, dass Du eher ein DWORD verwenden solltest. Das Problem an Real ist, dass dies halt nciht unbeding Bit-für-Bit codiert ist. Will sagen, dadurch, dass Real ja kein ganzzahliger Wert ist, kannst du die Variable nicht als binärcodiert ansehen. Es gilt 10#18 = 16#13 =2#10010
Verwende, wenn irgenwie möglich ein DWORD, dann geht das mit den Bits.
(evtl. Mit Faktor 100 multiplizieren, um die Nachkommastellen zu simulieren)
Wenn das nciht möglich ist, müsste man sich mal darum bemühen, den aktuellen Wert per Ceeling-Funktion ( Celing(8,6564) = 9) erst zu runden, dann das Bit bzw den entsprechenden Dezimalwert hinzuzählen/abziehen und dann das ganze zurücktransformieren. SEHR kompliziert und langsam.
Apropos lamgsam: Real-Werte werden aufgrund Ihrer Präzision immer viel langsamer verarbeitet als ganzzahlige Werte.
Gruß
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-10-26
Originally created by: Bernhard Werner
Hallo Jesper,
ich hoffe du weisst, was du tust, aber bitte:
ptdwordorg : POINTER TO DWORD;
ptdwordl : POINTER TO DWORD;
ptdwordorg := ADR(orgrell);
ptdwordl := ADR(Reall);
ptdwordl^.3 := ptdwordorg^.15;
Bernhard
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Bernhard Werner hat geschrieben:
Hallo Jesper,
ich hoffe du weisst, was du tust, aber bitte:
ptdwordorg : POINTER TO DWORD;
ptdwordl : POINTER TO DWORD;
ptdwordorg := ADR(orgrell);
ptdwordl := ADR(Reall);
ptdwordl^.3 := ptdwordorg^.15;
Bernhard
Hallo Bernhard
Ja das glaube ich danke für die info.
Jesper
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo
Ich würde gerne ein par bit's in ein real Wort andreren aber so wir ich das hier probiert hat funktioniert es nicht. Hat da jemand ein ide wir i das machen kann.
Reall.3 := orgrell.15;
Erklär doch mal was Du genau machen willst.
Ohne jetzt Code zu verwenden.
Der Bitzugriff auf Real macht wenig sinn.
Ok probiere, ich muss den Exponenten und Si und SE anderen des wegen muss ich die bit manipulieren.
Gruß Jesper
Ich vermute mal, dass Du eher ein DWORD verwenden solltest. Das Problem an Real ist, dass dies halt nciht unbeding Bit-für-Bit codiert ist. Will sagen, dadurch, dass Real ja kein ganzzahliger Wert ist, kannst du die Variable nicht als binärcodiert ansehen. Es gilt 10#18 = 16#13 =2#10010
Verwende, wenn irgenwie möglich ein DWORD, dann geht das mit den Bits.
(evtl. Mit Faktor 100 multiplizieren, um die Nachkommastellen zu simulieren)
Wenn das nciht möglich ist, müsste man sich mal darum bemühen, den aktuellen Wert per Ceeling-Funktion ( Celing(8,6564) = 9) erst zu runden, dann das Bit bzw den entsprechenden Dezimalwert hinzuzählen/abziehen und dann das ganze zurücktransformieren. SEHR kompliziert und langsam.
Apropos lamgsam: Real-Werte werden aufgrund Ihrer Präzision immer viel langsamer verarbeitet als ganzzahlige Werte.
Gruß
Originally created by: Bernhard Werner
Hallo Jesper,
ich hoffe du weisst, was du tust, aber bitte:
ptdwordorg : POINTER TO DWORD;
ptdwordl : POINTER TO DWORD;
ptdwordorg := ADR(orgrell);
ptdwordl := ADR(Reall);
ptdwordl^.3 := ptdwordorg^.15;
Bernhard
Hallo Bernhard
Ja das glaube ich danke für die info.
Jesper