Entwickler-Ecke
Open Source Projekte - Umrechnung in andere Ziffernsysteme
Fiete - Sa 15.01.11 14:10
Titel: Umrechnung in andere Ziffernsysteme
Das Programm rechnet bis zu 17-stellige natürliche Zahlen in andere Ziffernsysteme um.
Meine Lieblingszahl ist 45054 (Palindrom) im Hexadezimalsystem :wink:
Gruß
Fiete
Edit1: es gibt Erweiterungen: die Länge der Eingabe kann jetzt länger als 17 sein und
die Basis kann bis zu 62 groß sein
Bergmann89 - Sa 15.01.11 14:18
57005 is aber auch nich schlecht ;)
Delete - Sa 15.01.11 16:35
Was ist ein Ziffernsystem?
Jann1k - Sa 15.01.11 16:47
Ich kenn auch nur den Ausdruck Zahlensystem.
€: Schade, dass es mit einer negativen/komplexen Basis nicht klappt.
jaenicke - Sa 15.01.11 18:29
Jann1k hat folgendes geschrieben : |
| €: Schade, dass es mit einer negativen/komplexen Basis nicht klappt. |
Negative Basis? Eine neue mathematische Erfindung von dir? ;-)
Nettes kleines Programm, schade nur, dass der Zahlenbereich auch nicht größer als beim Windows Taschenrechner ist. ;-)
Tranx - Sa 15.01.11 18:51
Und wie wär's mit
64222
61438
60890
?
---
Moderiert von
Narses: Beiträge zusammengefasst---
Eigentlich ist ja der Zahlenraum der Umrechnung nicht begrenzt. Das Problem wird nur sein, dass die Zahlen dann nicht mehr als solche in normalen Programmen verwendet werden können, wenn man sie denn einmal in ein nicht 10er-System umgewandelt hat. Außer dann, wenn sie vorher wieder zurückverwandelt werden.
Tranx - Sa 15.01.11 19:28
Jann1k,
das Problem ist aber, dass dann die kontinuierliche Zahlenfolge durchbrochen wird. Nehmen wir das Beispiel -2 als Basis, dann ist:
0001 = 1
0010 = -2
0011 = -1
0100 = 4
0101 = 5
0110 = 2
0111 = 3
1000 = -8
1001 = -7
:
1111 = -5
Sicher, damit kann man rechnen. 1001 + 0001 = 1001 => -8 + 1 = -7, aber es ist - wie gesagt - keine aufsteigende Reihenfolge der Zahlen bei aufsteigender Ziffernfolge!
Jann1k - Sa 15.01.11 19:48
Tranx hat folgendes geschrieben : |
Jann1k,
das Problem ist aber, dass dann die kontinuierliche Zahlenfolge durchbrochen wird. Nehmen wir das Beispiel -2 als Basis, dann ist:
0001 = 1
0010 = -2
0011 = -1
0100 = 4
0101 = 5
0110 = 2
0111 = 3
1000 = -8
1001 = -7
:
1111 = -5
Sicher, damit kann man rechnen. 1001 + 0001 = 1001 => -8 + 1 = -7, aber es ist - wie gesagt - keine aufsteigende Reihenfolge der Zahlen bei aufsteigender Ziffernfolge! |
Okay, aber das ist doch nicht entscheidend bei einem Stellenwertsystem, hauptsache ist doch, dass jede Zahl eine eindeutige Darstellung hat. Und das ganze ist ja auch nicht wirklich Kritik an Fietes Programm, sondern mehr so eine Randnotiz, dass es vllt ganz interessant wäre das zu implementieren.
Tranx - Sa 15.01.11 20:22
Klar, ich sagte ja, dass man damit rechnen kann. Doch ein Zahlensystem, bei dem eine kleinere Zahl größer als eine größere ist, macht keinen Sinn. Auch geht das Ganze ja noch in den Real-Zahlenbereich. Und dann wird das Ganze extrem schwierig:
0,1 = -1/2
0,01 = 1/4
0,001 = -1/8
Ganz zu schweigen von dem negativen Zahlenraum:
-11 = 1
11 = -1
Rechnen kann man mit solchen Zahlensystemen, doch sinnvoll ist das nicht.
elundril - Sa 15.01.11 20:42
Tranx hat folgendes geschrieben : |
| Rechnen kann man mit solchen Zahlensystemen, doch sinnvoll ist das nicht. |
Wenn du deinen Anspruch so hoch steckst und sinnvolle Dinge erwartest, muss ich dir sagen das du dann auf diesem Planeten falsch bist. ;)
Namenlosnameless - So 16.01.11 01:55
Tranx hat folgendes geschrieben : |
Rechnen kann man mit solchen Zahlensystemen, doch sinnvoll ist das nicht. |
schau dir doch einfach Mal die Mathematik an: so wirklich metrisiert ist die auch nicht! z.B. Winkel!
Also warum nicht einfach mal in andern Zahlsystemen rechnen! Das ist nicht mehr oder weniger sinnvoll als einen Kreis mit 360° anzunehmen!
Tranx - So 16.01.11 08:21
Leute, dann bitte ich Euch, bleibt wenigstens konsequent. Nicht das blöde, einfache Zahlensystem mit Nullen und Einsen. Nein, ein Zahlensystem mit Ziffern von 0 .. 9 und Basis -10 bitte.
Danke!
Dann haben wir wenigstens alle auf dem Papier keine Schulden, wenn wir 10-99 Euros besitzen, 1000-9999 Euros, 100000-999999 Euros. Einfache Millionäre wären doch langweilig, oder? Banken würden dann sicher für eine Abhebung von 100 Euros entweder 9 oder gleich 100 Euro Gebühr nehmen, bei 90 Euros müsstest Du Geld auf die Bank überweisen.
Sicher, das ist nicht realistisch. Aber wer redet denn von Realismus. Machen wir, was wir machen wollen, weils Spaß macht, und nichts anderes. ;)
Und Ein Tausch von Euro in DM bringt dann garnichts!!! Um dem schon mal vorweg zu greifen.
Auch gilt das Beispiel Kreis nun überhaupt nicht. Denn ich kann auch mit Winkeln > 360° rechnen. Und auch mit Stunden über 24 oder Tagen über 365, etc. Zyklisch ablaufende Prozesse, wie der Umlauf um einen Kreis sind nun mal nicht anders darstellbar, oder habt Ihr ein anderes Zahlensystem, welches diese Vorgänge genau abbildet. Das mit negativen Basiszahlen bestimmt nicht, denn dann wäre schon der Winkelsprung von 9 - 10 ein Sprung von 19 Graden, statt einem!
Namenlosnameless - So 16.01.11 11:18
Tranx hat folgendes geschrieben : |
Auch gilt das Beispiel Kreis nun überhaupt nicht. Denn ich kann auch mit Winkeln > 360° rechnen. Und auch mit Stunden über 24 oder Tagen über 365, etc. Zyklisch ablaufende Prozesse, wie der Umlauf um einen Kreis sind nun mal nicht anders darstellbar, oder habt Ihr ein anderes Zahlensystem, welches diese Vorgänge genau abbildet. Das mit negativen Basiszahlen bestimmt nicht, denn dann wäre schon der Winkelsprung von 9 - 10 ein Sprung von 19 Graden, statt einem! |
natürlich kann ich das! Das nennt man dann die "neuen deutschen Grad" bei denen der rechte Winkel 100° hat also der ganze Kreis 400!
dann hätten wir wieder ein metrisches System! Aber wirklich durchgesetzt hat es sich nie!
Also ist es eben genauso sinnlos im 360°-System zurechnen wie im System mit Basis 15!
Tranx - So 16.01.11 11:47
Das meinte ich nicht. Ich meinte, dass man auch mit 560 oder 1500 Grad rechnen kann. In dem Bereich, in dem ich arbeite, wird dies getan. Wenn man einen Verwindeversuch durchführt, das heißt, einen Versuch, bei dem man einen Draht einseitig um seine Achse verwindet bis er bricht, wird dieser Versuch bis 1500 Grad und mehr, also mehrere Umdrehungen durchgeführt.
Bei meinen Überlegungen bezüglich negativer Basen ist mir noch eines in den Sinn gekommen:
Basis -10!!
Vielfache von 7:
7 194 181 188 175 162 169 156 143 130 ....
oder
7 -26 -39 -32 -45 -58 -51 -64 -77 -70 ....
Viel Spaß beim Lernen!!
Wie man sieht, kommen dann Zahlen doppelt vor!! -26 = 194 ;)
Jann1k - So 16.01.11 12:48
| Zitat: |
| Wie man sieht, kommen dann Zahlen doppelt vor!! -26 = 194 |
Könnte es nicht auch sein, dass wenn man negative Basen verwendet das Vorzeichen '-' sowieso überflüssig wird, da man es ja implizit in den einzelnen Stellen hat?
Über Sinn und Unsinn eines Stellenwertsystems mit negativer Basis lässt sich natürlich streiten, aber es würde mich doch sehr wundern, wenn die Mathematik dafür noch keinerlei Anwendung gefunden hätte.
Fiete - Mo 17.01.11 11:18
Moin Sebastian,
es gibt Erweiterungen: die Länge der Eingabe kann jetzt länger als 17 sein.
Meine Unit Langzahlrechnen machts möglich!
Die Basis kann bis zu 62 groß sein.
45054 --> 1010111111111110(2), AFFE(16), Big(62)
Je größer die Basis ist desto kürzer das Ergebnis, die etwas andere Art zu Komprimieren
@Luckie: eine Zahl besteht aus Ziffern, daher die Beschreibung.
Eine erzeugende Grammatik für natürliche Zahlen könnte so aussehen:
S --> SS | Z
Z --> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Hier gibts mehr Infos
http://de.wikipedia.org/wiki/Formale_Sprache
jaenicke - Mo 17.01.11 11:42
Fiete hat folgendes geschrieben : |
es gibt Erweiterungen: die Länge der Eingabe kann jetzt länger als 17 sein.
Meine Unit Langzahlrechnen machts möglich! |
Das wiederum macht das Tool sehr nützlich, denn das vermisse ich durchaus manchmal beim Windows Taschenrechner. :zustimm:
Delete - Mo 17.01.11 12:45
Üblicherweise spricht man aber von Zahlensystemen.Den Begriff ziffernsystem habe ich übrigens bei einer oberflächlichen Suche in der Wikipedia nicht gefunden.
Fiete - Mo 17.01.11 16:48
Moin Luckie,
Wikipedia ist nicht alles, Google liefert viel zu dem Stichwort.
Wir könnten uns vielleicht auf Stellenwertsysteme einigen :les:
Gruß
Fiete
Horst_H - Mo 17.01.11 22:26
Hallo,
ich hier mal eine Basisumwandlung mit spinedit.onchange die ohne Division auskommt.
Die Zahl aus dem oberen Memo wird umgewandelt, wobei man beide Basen ändern kann.
Wobei Basis1 nicht kleiner gleich als die höchste Ziffer werden sollte.
Aber man kann mit Basis2 wahlfrei herumspielen.
Gruß Horst
P.S.
Delphi -> Lazarus funktioniert, aber umgekehrt?
Fiete - Mi 19.01.11 11:06
Moin Horst_H,
interessante Lösung.
Werde versuchen meine Lösung Deiner optisch anzunähern.
Gruß Fiete
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!