AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hex to Dezimal von Pi

Ein Thema von cheatzs · begonnen am 6. Jun 2004 · letzter Beitrag vom 8. Jun 2004
Antwort Antwort
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

Hex to Dezimal von Pi

  Alt 6. Jun 2004, 14:06
Hi Leute,

ich hab mich die letzten Stunden hingestetzt und das Verfahren von David H. Bailey zur Pi-Berechnung in Delphi umgsetzt. (nach einer C Vorlage)

Das Problem ist, dass dieses Verfahren die Zahl pi in Hexadezimalzahlen ausgbibt.

Es kommt also sowas raus wie
243F6A8885,A308D31319,8A2E037073,...
Auf einigen Websites hab ich auch die Darstellung als
3.243F6A8885A308D313198A2E037073
gefunden.

Leider sind alle Versuche diese Zahl irgendwie in das Dezimalsystem umzurechnen gescheitert.
Rauskommen müsste ja irgendwas mit 3.14159...

Wenn ihr also einen Tip habt, wie ich das hinbekommen könnt, wär das SUPI.

Bye
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Hex to Dezimal von Pi

  Alt 6. Jun 2004, 17:59
Hex zahlen werden normalerweise in Delphi mir einem $-zeichen 'angekündigt'. Wenn du nun sowas machst: StrToInt('$123ABC'), dann kommt da: 1194684 ... sowas raus ...
Ich hoffe das hilft dir weiter ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3

Re: Hex to Dezimal von Pi

  Alt 6. Jun 2004, 20:48
ich bezweifel, ob das klappt, wenn man ein paarhundert (eher mehr) stellen hat
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Hex to Dezimal von Pi

  Alt 6. Jun 2004, 21:16
Für rechnen mit langen Zahlen nehm ich immer Hagens DEC
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#5

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 15:14
Danke erstmal,
die erste Variante mit StrToInt war mir bekannt. Leider bietet sie nicht genügend Genauigkeit.

Wen es interessiert:

Um das ganze Handschriftlich auszurechnen kann man sich folgender Art der Rechnung bedienen.

3.243F6A8885...

3, 2 4 3 F
pi = 3 * 16^0 + 2 * 1/16^1 + 4 * 1/16^2 + 3 * 1/16^3 + 15 * 1/16^4 ...

Das eigentliche Problem, was allerdings wohl nicht lösbar ist, ist eine beliebige Stelle von Pi von Hex in Dezimal umzurechnen, ohne die vorherigen zu wissen.


Trotzdem Danke
Ich lass einfach die Hex-Zahlen

Bye
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 15:56
Zitat von cheatzs:
pi = 3 * 16^0 + 2 * 1/16^1 + 4 * 1/16^2 + 3 * 1/16^3 + 15 * 1/16^4 ...
An der Formel stimmt was nicht: (glaube ich )
Ich habe eine andere und bei dir steht 16^0 was eigentlich nicht geht!

Pi = 4 * (1/1-1/3+1/5-1/7+1/9-1/11+1/13-...)

Die kann man zwar umformen aber 16^0 ist bestimmt falsch!
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#7

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 16:26
@Nicolai1605

Also die Formel:
Zitat:
pi = 3 * 16^0 + 2 * 1/16^1 + 4 * 1/16^2 + 3 * 1/16^3 + 15 * 1/16^4 ...
rechnet das Hexadezimal pi (3,243F6A8885...) in das Dezimale Pi (3.1415926...) um.

Die Rechnung geht dann so weiter

3 * 16^0 = 3 (da 16^0 = 1 --> nur zur Veranschaulichung gedacht)

2*1/16^1 = 1/8

4*1/16^2 = 1/64

3*1/16^3 = 3/4096

15/16^4 = 15/65536

3+1/8+1/64+3/4096+15/65536 = ist rund 3.14158...

Die Formel die du beschrieben hast:
Zitat:
Pi = 4 * (1/1-1/3+1/5-1/7+1/9-1/11+1/13-...)
rechnet Pi neu aus.

Ich aber habe Pi bereits mit Hilfe einer anderen Methode berechnet - nur eben in Hexadezimalschreibweise.
Damit ich mit dieser Berechnung nun auch was anfangen kann, wollt ich sie in die Dezimalschreibweise umwandeln. Das geht aber leider nur wie oben beschrieben.

Hoffe du weißt jetzt, was ich mein

Bye
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 16:27
Zitat von Nicolai1605:
An der Formel stimmt was nicht: (glaube ich )
Ich habe eine andere und bei dir steht 16^0 was eigentlich nicht geht!
Die Formel stimmt schon (glaube ich ).
Genauer gesagt ist sie:
Pi = 3 * 16^0 + 2 * 16^(-1) + 4 * 16^(-2) + 3 * 16^(-3) + 15 * 16^(-4) ...
Wobei:
16^0 = 1
16^(-1) = 1/16 (ein sechzehntel)
16^(-2) = 1/(16^2) = 1 / (16*16)
...
Es handelt sich dabei um ein Festkommaformat. Es lässt sich relativ leicht
in ein binäres Festkommaformat transformieren:
aaaa.bbbbccccddddeeee
0011.0010010000111111

Hier die Umwandlung in das Extended-Format
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  h : string;
  x, f : Extended;
  i : Integer;
begin
   f := 1.0;
   h := '3243F6A8885';
   x := 0.0;

   for i := 1 to Length(h) do
   begin
      x := x + f * StrToInt('$'+h[i]);
      f := f / 16.0;
   end;

   Caption := FloatToStr(x);
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#9

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 16:45
Danke für den Code,
leider muss ich sagen, wie ich weiter oben mit Sicherheit schon erwähnt habe, dass ich diese Art von Umrechnung nicht gebrauchen kann, da ich bei der Berechnung der Hexadezimalstellen von Pi jede beliebige Stelle berechnen kann - Also die n-te Stelle von Pi.

Ohne allerdings jede Stelle vor dieser Stelle zu wissen (was der Fall sein wird, da man bei der 1.000.000 Stelle nicht die Stellen vorher alle ausrechnen kann), kann ich pi nicht in Dezimalzahlen umwandeln. Dieses hatte ich aber versucht. (Es hat und wird nie klappen)

Ich wollte deshalb noch die korrekte Umrechnung von Hexadezimal- in Dezimalzahlen darstellen unter Hilfe aller vorherigen Stellen von Pi.
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#10

Re: Hex to Dezimal von Pi

  Alt 8. Jun 2004, 16:56
Leider müssen bei dieser Umrechnung alle Stellen vorher ermittelt werden.


Nur Hex <-> Bin <-> Okt benötigt man keine Kenntnisse über die vorhergehenden zahlen.

Grund: Binäre d10 b1010
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz