AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Oktalzahl zu Dezimalzahl

Ein Thema von KermitFrosch · begonnen am 17. Mär 2004 · letzter Beitrag vom 6. Apr 2006
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#11

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 18:29
Hi!

UpperCase macht alles zu Großbuchstaben.
LowerCase macht alles zu Kleinbuchstaben.

Delphi-Quellcode:
showmessage(Uppercase('teSt')); // = TEST
showmessage(Lowercase('teSt')); // = test

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
KermitFrosch

Registriert seit: 26. Jan 2004
Ort: Hamburg
57 Beiträge
 
#12

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 18:40
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
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#13

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 18:42
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
Frederic Kerber
  Mit Zitat antworten Zitat
KermitFrosch

Registriert seit: 26. Jan 2004
Ort: Hamburg
57 Beiträge
 
#14

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 18:59
woher weiß er denn die richtige posi?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#15

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 19:38
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 )


Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#16

Re: Oktalzahl zu Dezimalzahl

  Alt 21. Mär 2004, 19:52
Zitat von KermitFrosch:
Das prinzip ist mir schon klar

dezimal -->12344

4 · 1 = 4
4 · 8 = 32
3 · 64 = 192
2 · 512 = 1024
1 · 4096 = 4096
—————
5348

oktal --> 5348
Ist Euch eigentlich schon mal aufgefallen, dass die hier gezeigte Umrechnung einer Dezimalzahl in eine Octalzahl völlig falsch ist?
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.
Miniaturansicht angehängter Grafiken
dez3oct.jpg  
I come from outer space to save the human race
  Mit Zitat antworten Zitat
KermitFrosch

Registriert seit: 26. Jan 2004
Ort: Hamburg
57 Beiträge
 
#17

Re: Oktalzahl zu Dezimalzahl

  Alt 24. Mär 2004, 14:48
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
  Mit Zitat antworten Zitat
Nieswood

Registriert seit: 6. Apr 2006
2 Beiträge
 
#18

Re: Oktalzahl zu Dezimalzahl

  Alt 6. Apr 2006, 10:58
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' hatte das mit dem octal[i] nit ganz geschnitten ... danke schon mal im vorraus für die hilfe!
  Mit Zitat antworten Zitat
Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Oktalzahl zu Dezimalzahl

  Alt 6. Apr 2006, 11:20
Ich hab ne function die jedes Zahlensystem ins andere Rechnen kann (warum sollte man auch für jede umrechnung eine function schreiben?):

Delphi-Quellcode:
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;
Beispiele:
Delphi-Quellcode:
ShowMessage(BaseToBase('101010', 2, 16)); // umrechnung von Binär in Hex
ShowMessage(BaseToBase('12345', 10, 8)); // umrechnung von Dezimal in Oct
mfg
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: Oktalzahl zu Dezimalzahl

  Alt 6. Apr 2006, 11:28
will dann mal meine Version auch mal in den Ring werfen.

Delphi-Quellcode:

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;
edit: uups falsch herum


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:53 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