www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Maple" - 320.25 im Double-Format
320.25 im Double-Format < Maple < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

320.25 im Double-Format: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 18:53 So 04.06.2006
Autor: schue

Aufgabe
Berechnen Sie die Zahl 320.25 im Double Format und geben Sie das Ergbenis hexadezimal an.

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.


Ich möchte gern mit MAPLE folgende Aufgabe lösen:
"Berechnen Sie die Zahl 320.25 im Double Format und geben Sie das Ergbenis hexadezimal an."

Ich weiß schon, dass man mit den Formfunktionen

convert(320.25,binary);  und  
convert(320.25,hex);

die Zahl konvertieren kann, aber wie läuft das ganze im DOUBLE Format ab, denn so wie oben angegeben würde es ja im SINGLE Format sein!

Vielen Dank

MFG René

        
Bezug
320.25 im Double-Format: Antwort
Status: (Antwort) fertig Status 
Datum: 19:29 So 04.06.2006
Autor: Martin243

Hallo,

bist du sicher, dass die Aufgabe so gemeint ist?

Bei mir funktioniert die Funktion convert(x, binary/hexadecimal) mit gebrochenen Zahlen nicht. Außerdem gibt es bei Maple keine Unterscheidung zwischen single und double precision, da man die Anzahl der Nachkommastellen explizit angeben kann. Was es gibt, sind "hardware floats", aber die kommen nur in bestimmten Datenstrukturen vor (rtables).

Kann es sein, dass es um den ANSI/IEEE Standard 754-1985 geht? Das ist die Definition, wie floats im Computer dargestellt werden? Ist nur eine vage und vielleicht etwas aus den Fingern gesogene Vermutung, aber was anderes fällt mir dazu nicht ein...

Ach ja: Sind die Aufgaben unbedingt mit Maple zu lösen, oder willst du es nur damit machen?


Gruß
Martin

Bezug
                
Bezug
320.25 im Double-Format: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:56 Mo 05.06.2006
Autor: schue

Hallo,

DANKE erstmal für die rasche Antwort. Wie hättest du die Aufagbe denn gelöst? Genau lautet die Aufgabe: "Berechen Sie die Darstelung der Zahl 320.25 im Double Format und geben Sie das Ergebnis Hexadeziaml an!"

Das von dir beschriebene Maple Problem hab ich auch gehabt, deswegen hab ich ja gedacht, dass ich dort irgendwo einen Fehler gemacht habe.

Also ich denke deine Vermutung ist richtig. Es gibt ja verschiedenen Gleitkommadatentypen und ich habe ein Excel Programm der die Zahl ausrechnet aber nur für IEEE 754 (wenn das die Definition für SINGLE ist) dort kommt für 320.25=43A02000 HEX   raus. Ichhabe das ganze mal für den Datentyp Double geamcht so wie es verlangt wurde  und bei mir kommt jetzt für 320.25= 20390200 HEX  raus!
Nun weiß ich aber nich ob das richtig ist und wollte dies überprüfen. Da ich aber nich weiß wie ich das anders überprüfen kann, hab ich es mit Maple versucht. Wenn es dort eine andere Möglichkeit gibt, wäre es schön wenn du sie mir zeigen könntest.

Danke

MfG René

Bezug
                        
Bezug
320.25 im Double-Format: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:45 Mo 05.06.2006
Autor: Martin243

Hallo,

hmm, dein double-Ergebnis überzeugt mich nicht, denn während single floats nur 32 Bit brauchen (ergibt 8-stellige Hex-Zahl), benötigt man für die Darstellung von double floats 64 Bit. Also müsste dein Ergebnis hexadezimal 16-stellig sein. Schau dir die Definition von doubles an:
[]Wikipedia

Ich poste dir mal in Kürze Maple-Programme, die die Hex-Werte überprüfen, wenn ich übermütig bin auch welche, die die Darstellung erzeugen.

Gruß
Martin

Bezug
                        
Bezug
320.25 im Double-Format: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:41 Mo 05.06.2006
Autor: Martin243

Hallo,

so die Progrämmchen sind fertig!

Umwandeln der Single-Float-Darstellung in Dezimalzahl:
single_SEM2dec := (Sign,Exp,Mantissa) -> evalf((1-2*Sign) * 2^(Exp-127) * (1 + Mantissa/(2^23))):
single_single2SEM := x -> ((floor(convert(x, decimal, hex)/2^31) , floor((convert(x, decimal, hex) mod 2^31)/2^23), convert(x, decimal, hex) mod 2^23)):
single_single2dec := x -> single_SEM2dec(single_single2SEM(x)):

Anwendung:
single_single2dec("43A02000");



Umwandeln der Dezimalzahl in Single-Float-Darstellung:
single_SEM2single := (Sign,Exp,Mantissa) -> convert(Sign*2^31 + Exp*2^23 + Mantissa , hexadecimal):
single_dec2SEM := x -> ((1-sign(x))/2 , 127 + floor(log[2](abs(x))) , floor(2^23*(abs(x) / 2^floor(log[2](abs(x))) - 1)) ):
single_dec2single := x -> single_SEM2single(single_dec2SEM(x)):

Anwendung:
single_dec2single(320.25);


Umwandeln der Double-Float-Darstellung in Dezimalzahl:
double_SEM2dec := (Sign,Exp,Mantissa) -> evalf((1-2*Sign) * 2^(Exp-1023) * (1 + Mantissa/(2^52))):
double_double2SEM := x -> ((floor(convert(x, decimal, hex)/2^63) , floor((convert(x, decimal, hex) mod 2^63)/2^52), convert(x, decimal, hex) mod 2^52)):
double_double2dec := x -> double_SEM2dec(double_double2SEM(x)):

Anwendung:
double_double2dec('407403FFFFDC15C0');


Umwandlung der Dezimalzahl in Double-Float-Darstellung:
double_SEM2double := (Sign,Exp,Mantissa) -> convert(Sign*2^63 + Exp*2^52 + Mantissa , hexadecimal):
double_dec2SEM := x -> ((1-sign(x))/2 , 1023 + floor(log[2](abs(x))) , floor(2^52*(abs(x) / 2^floor(log[2](abs(x))) - 1)) ):
double_dec2double := x -> double_SEM2double(double_dec2SEM(x)):

Anwendung:
double_dec2double(320.25);


Ich hoffe, der Code wird nicht durch die Formatierung verhunzt...

Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]