Re: Oktalzahl zu Dezimalzahl
Hi!
UpperCase macht alles zu Großbuchstaben. LowerCase macht alles zu Kleinbuchstaben.
Delphi-Quellcode:
showmessage(Uppercase('teSt')); // = TEST
showmessage(Lowercase('teSt')); // = test Ciao fkerber |
Re: Oktalzahl zu Dezimalzahl
begin
for i := 1 to length(octal) do dec := dec*sys + pos(upCase(octal),ch) - 1; thx, aber wie wird dieses ch verwendet. Woher weiß das prog, wann es verwändet wird |
Re: Oktalzahl zu Dezimalzahl
Hi!
Wie meinst du das? ch ist ein String, aus dem mit Pos die benötigte Stelle gesucht wird, wenn ich das richtig interpretiere. Ciao fkerber |
Re: Oktalzahl zu Dezimalzahl
woher weiß er denn die richtige posi?
|
Re: Oktalzahl zu Dezimalzahl
Hi!
Du rufts die Funktion Pos doch so auf, dass du ihr ein Zeichen übergibst, dass sie in dem konstanten String suchen soll. Der String sieht ja so aus: 0123456789ABCDEF Übergibst du jetzt das Zeichen A, dann gibt Pos 10 zurück (ich hoff mal, dass 10 stimmt, bin mir nicht sicher, ob der ab 0 zählt oder wie auch immer, aber fürs Prinzip wird es hoffentlich klar :oops: ) Ciao fkerber |
Re: Oktalzahl zu Dezimalzahl
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das erste Indiz ist, dass in der vermeintlichen Lösung die Basis als Ziffer vorkommt. Kann nicht sein. Das zweite Indiz ist, dass die vermeintliche Lösung weniger Ziffer hat als die Dezimalzahl. Kann nicht sein. Es können nur gleiche viele oder mehr Ziffern sein. Weil die Basis des Octalensystems kleiner ist als die des Dezimalensystems. Die richtige Lösung lautet: 12344(dezimal) ist 30070(octal) Der Algorithmus für die Umrechnung einer Dezimalzahl in ein beliebiges Zahlensystem kann aus der Anlage abgeleitet werden. |
Re: Oktalzahl zu Dezimalzahl
ja, ok, dieses beispiel von mir war falsch... aber die schleife rechnet es richtig...
doch weiß ich immer noch nichts mit der besagten Zeile anzufangen |
Re: Oktalzahl zu Dezimalzahl
hallo erstmal,
habe diese diskussion brennend verfolgt, nur hänge ich einwenig ... würde gerne mal den kompletten quellcode sehen. denn er gibt mir zwar die ersten oktalzahlen richtig aus aber danach erhalte ich immer nur eine '-9' :wall: hatte das mit dem octal[i] nit ganz geschnitten ... danke schon mal im vorraus für die hilfe! |
Re: Oktalzahl zu Dezimalzahl
Ich hab ne function die jedes Zahlensystem ins andere Rechnen kann (warum sollte man auch für jede umrechnung eine function schreiben?):
Delphi-Quellcode:
Beispiele:
function BaseToBase(Value: string; StartBase, EndBase: byte): string;
const Digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var i: Integer; dez, j: Int64; begin Result:=''; if (StartBase<2) or (StartBase>36) or (EndBase<2) or (EndBase>36) then Exit; for i:=1 to Length(Value) do begin j:=Pos(Value[i], Digits); if (j>StartBase) or (j=0) then Exit; end; j:=1; dez:=0; for i:=Length(Value) downto 1 do begin dez:=dez + (Pos(Value[i], Digits)-1) * j; j:=j*StartBase; end; repeat Result:=Digits[dez mod EndBase+1] + Result; dez:=dez div EndBase; until dez=0; end;
Delphi-Quellcode:
mfg
ShowMessage(BaseToBase('101010', 2, 16)); // umrechnung von Binär in Hex
ShowMessage(BaseToBase('12345', 10, 8)); // umrechnung von Dezimal in Oct |
Re: Oktalzahl zu Dezimalzahl
will dann mal meine Version auch mal in den Ring werfen.
Delphi-Quellcode:
edit: uups falsch herum function dec2oct(zahl:Integer):String; begin if zahl DIV 8 > 0 then begin result:=IntToStr(zahl MOD 8)+result; zahl := zahl DIV 8; result:=dec2oct(zahl)+result; end else result:=IntToStr(zahl)+result; end; Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 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