www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 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 "Matlab" - Umwandeln b-adischer Zahlen
Umwandeln b-adischer Zahlen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Umwandeln b-adischer Zahlen: "Tipp"
Status: (Frage) beantwortet Status 
Datum: 13:26 Di 31.10.2006
Autor: hanesy

Aufgabe
Schreiben Sie ein Programm in MATLAB, das verschiedene B-adische Zahlen
ineinander umrechnet. Implementieren Sie insbesondere die F¨alle B = 2, 8, 10, 16

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

Hallo an alle,

Ich würde für die obige Aufgabe eine gegebene Zahl mit z.B. den Ziffern 12345.67
in eine Matrix
[ 1 2 3 4 5 6 7 ]. dann könnte ich über eine Matrizen multiplikation mit [mm] [b^4 b^3 [/mm] ..... b^-2] zunächst die Dezimalzahl leicht berrechnen.
daran scheitere ich aber bislang, hat jemand einen tipp? oder gehe ich viell ganz falsch an die sache ran ?
vielen dank für jede hilfe

        
Bezug
Umwandeln b-adischer Zahlen: Antwort
Status: (Antwort) fertig Status 
Datum: 00:00 Mi 01.11.2006
Autor: Martin243

Hallo,

dein Ansatz ist leider falsch.
Das Problem ist, dass du eine Zahl von einer beliebigen Basis in eine beliebige andere Basis konvertieren möchtest. Dabei kann es aber passieren, dass in der einen oder anderen Basisdarstellung Buchstaben vorkommen müssen. Also muss deine Eingabe von vornherein ein String oder Char Array sein.

Bei der Konversion ist zu beachten, dass es zwei Ansätze gibt:

1. Wenn man von einer beliebigen Basis A in die Basis B, in der man rechnet, konvertiert, dann geschieht die Konversion synthetisch, d.h. man setzt die Zahl aus den Potenzen der A-Darstellung zusammen und erhält die B_Darstellung. Beispiel:

[mm]A4C_{16} = 10*16^2 + 4*16^1 + 12*16^0 = 2636[/mm] (Wir rechnen in der 10er-Basis, wie man sieht.)

2. Möchte man nun von der gewohnten Basis B in eine andere Basis A konvertieren, so geschieht dies analytisch, d.h. wir stellen fest, welche Potenzen von A in unserer Zahl vorkommen und notieren diese. Beispiel:
[mm]2636/16^2 = A +76/16^2 [/mm]
[mm]76/16^1 = 4 +12/16^1 [/mm]
[mm]12/16^0 = C [/mm]
Also: A4C


Am besten ist es also, du wandelst deine Eingabe zuerst synthetisch in die Zehnerbasis um und erzeugst daraus dann analytisch die Darstellung in deiner Zielbasis.
Für den ersten Schritt kannst du tatsächlich zwei Vektoren miteinander multiplizieren, aber bedenke, dass darin nicht nur die Ziffern '0' bis '9', sondern auch Buchstaben vorkommen können. Das erfordert etwas Vorverarbeitung!


Gruß
Martin

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


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]