Autor Beitrag
drsnoop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Mi 14.01.04 23:00 
sorry, dass ich mit solchen lapalien nerve, aber wie potenziere ich in delphi nochmal?


ich wollte folgendes machen:

ausblenden Delphi-Quelltext
1:
2 "hoch" (length(a)-i)					


a ist vom typen integer... sonst hätte ich "exp" genommen, aber geht net...

und wenn ich das so mache:

ausblenden Delphi-Quelltext
1:
2^(length(a)-i)					


sagt der mir "Zeigertyp erwartet" als Fehler...


gibts da nicht ein zeichen oder eine zeichenfolge fürs potenzieren? wollte nämlich auch keine eigene funktion oder prozedur dafür machen...

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 14.01.04 23:10 
Hallo!

Das Potenzieren funktioniert mit "Power(basis, exponent)" oder "PowerInt(Basis, IntExponent)".

MfG
Peter

//edit: Wenn Du jedoch nur 2^x haben willst, dann solltest Du mal "1 shl x" in Betracht ziehen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Mi 14.01.04 23:15 
Power funktioniert leider nur mit extendet und PowerInt kennt der bei mir nicht... :?

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 14.01.04 23:38 
drsnoop hat folgendes geschrieben:
Power funktioniert leider nur mit extendet und PowerInt kennt der bei mir nicht... :?

IntPower ;) (unit math mit in uses liste aufnehmen)

intpower liefert aber auch einen extended-wert zurück, kannst du mit
ausblenden Delphi-Quelltext
1:
i:=round(intpower(x,hochy))					
in einen integer wandeln

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 14.01.04 23:46 
PowerInt, IntPower, ... wieso ist das denn nicht kommutativ? ;-)

Aber für 2^x wird 1 shl x sehr viel schneller sein!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Mi 14.01.04 23:47 
hmm?


wie meinen peter?

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 14.01.04 23:54 
zu (1):
war 'n Witz. Ich hatte den Funktionennamen falsch hingeschrieben. Umgedreht.
zu (2):
1 shl x verschiebt alle Bits von 1 um x nach links. Das Ergebnis ist 2^x.
z.B.
- 1 in 8 Bit = 00000001
- Verschiebung um 3 nach links ("1 shl 3"): 00001000
- die 1 an der vierten Stelle entspricht der Zahl 8 im Dezimalsystem
- 2^3 = 8

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Do 15.01.04 00:00 
hmm.... funktioniert eigentlich alles ganz gut...

jedoch haperts jetzt an nem denkfehler im programm... :roll:


möchte eine binärzahl in eine dezimalzahl umwandeln...

so sieht mein sourcecode bisher aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
dualzahl := tf_eingabe.text;
         for i := length(dualzahl) downto 1 do
          begin
           case dualzahl[i] of
            '1' : dezimalzahl := dezimalzahl + round(IntPower(2,(length(tf_eingabe.text)-i)));
            '0' : dezimalzahl := dezimalzahl + 0;
           end//case
          tf_dual.Text := inttostr(dezimalzahl); 
          end// for i
        end;



vielleich sollte ich besser schon schlafen gehen... :D :wink:

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Do 15.01.04 00:38 
hat sich erledigt... habe nochma alles durchgeschaut und bemerkt, dass ich 'dezimalzahl' vor der schleife nicht auf 0 gesetzt habe, sie aber vorher in einer anderen aufgabe benutzt...


so blöd muss man erst ma sein.... :wink:


danke für eure hilfe!!!!!

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)