Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Aus Integer-Wert bestimmte Stelle extrahieren (https://www.delphipraxis.net/95431-aus-integer-wert-bestimmte-stelle-extrahieren.html)

ibp 6. Jul 2007 12:09


Aus Integer-Wert bestimmte Stelle extrahieren
 
Hallo,

stehe gerade voll auf dem schlauch :gruebel:

Situation:

ich habe einen integer-wert int=0101125 und ich brauche z.b. die 10er stelle (hier =2).

gibt es da ne einfache möglichkeit uasser irgendwelche 10er berechnungen?

thx schon mal

Dax 6. Jul 2007 12:11

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
Wie wärs denn mit
Delphi-Quellcode:
wert div Round(IntPow(10, stelle-1)) mod 10

ibp 6. Jul 2007 12:19

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
ja das wollte ich eigentlich vermeiden. kann man nicht direkt irgendwie auf das bit zugreifen?

scrat1979 6. Jul 2007 12:20

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
Zitat:

Zitat von ibp
Hallo,

stehe gerade voll auf dem schlauch :gruebel:

Situation:

ich habe einen integer-wert int=0101125 und ich brauche z.b. die 10er stelle (hier =2).

gibt es da ne einfache möglichkeit uasser irgendwelche 10er berechnungen?

thx schon mal

Du könntest auch die Zahl mittels "StringVariable := IntToStr(integer-variable);" in einen STring konvertieren, danach kannst Du mit StringVariable[i] auf die einzelnen Ziffern zugreifen...

SCRaT

//EDIT: Roter Kasten :-) Was Deine zweite Frage angeht bin ich leider überfragt - sorry.

ibp 6. Jul 2007 12:22

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
@scrat

danke aber das ist nicht wirklich performant :wink:

scrat1979 6. Jul 2007 12:25

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
Schon klar, aber von dieser Vorraussetzung war ja nicht die Rede. Es hieß ja nur "einfache Möglichkeit" *ggg* :lol:

Im Ernst: DA kann ich Dir leider nicht weiterhelfen. Vielleicht hat ja jemand einen asm-Code, der dürfte auch relativ schnell sein...

Viel Glück noch!


SCRaT

Dax 6. Jul 2007 12:31

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
Die Möglichkeit auf "Bits" zuzugreifen besteht leider nicht - ein Digit eines Int-Wertes in Dezimaldarstellung belegt ca 3,331 Bit. Außer dem vorgeschlagenen Weg geht wohl nichts so einfach..

phreax 6. Jul 2007 14:35

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
Hallo ibp,
probier mal das hier:

müsste eigentlich recht perfomant sein, jedenfalls performanter als die string version... ;)
Delphi-Quellcode:
function GetDigit(Int, Digit: Integer): Integer;
begin
 Result := Int Mod (Digit * 10);
 if digit > 10 then
 Result := Result- (Int mod (Digit div 10));
 Result := Result div Digit;
end;

//Beispielaufruf
  ShowMessage(inttostr(GetDigit(0101125,10)));
Digit muss die Stelle sein also zum Bsp 10er 100er usw...


mfg phreax

SirThornberry 6. Jul 2007 14:54

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
was genau hast du vor. anhand folgender Aussage bin ich etwas verwirrt:
Zitat:

ich habe einen integer-wert int=0101125
Was hat dich dazu bewegt eine führende 0 anzugeben? Hat das einen Grund? Denn ein reiner Integer merkt sich nicht wieviel führende Nullen angezeigt werden sollen.

ibp 6. Jul 2007 15:01

Re: Aus Integer-Wert bestimmte Stelle extrahieren
 
@sir vergiss die führende 0 war ein tippfehler beim kloppen auf den nummernblock!

@phreax schau dir mal das beispiel von dax an, die hat nur 4 operationen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 1 von 3  1 23   

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