AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

erklärt mir bitte ein programm

Ein Thema von a3rosol · begonnen am 18. Nov 2007 · letzter Beitrag vom 18. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
a3rosol
(Gast)

n/a Beiträge
 
#1

erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:10
hallo leute!
ich hab irgendwo im wieten web ein delphi code gefunden der eine bin in dec umwandelt

Delphi-Quellcode:
unction BinToDec(s:string):int64;
var p:int64;
    i:integer;
begin
 p:=0;
 for i:=1 to length(s) do
   p:=p*2+ord(s[i])-ord('0');//s[i] must be '0' or '1'
 result:=p;
end;
bis zu dem for i:=1 to length(s) do versteh ich ja alles (was ja nix ist) aber dann versteh ich gar nix mehr
ich hab rausgefundne:
The Ord function returns an integer value for any ordinal type Arg.
It is principally used to convert characters or enumerations into their numeric equivalents.
aber ich versteh da nur bahnhof...
bitte helft mir...
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:14
er geht die kompletten buchstaben des textes durch (das ist die for schleife) und gibt dann jeweils die zahl wieder (das sit das ord)

mfg
Martin
  Mit Zitat antworten Zitat
a3rosol
(Gast)

n/a Beiträge
 
#3

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:16
Zitat von lbccaleb:
er geht die kompletten buchstaben des textes durch (das ist die for schleife) und gibt dann jeweils die zahl wieder (das sit das ord)

mfg
was für eine zahl?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:16
Herzlich willkommen in der DP, a3rosol!
Das ist auch nicht ganz einfach. Wenn du ord auf ein einzelnes Zeichen anwendest, erhältst du die entsprechende Nummer im ASCII-Code. Da die Ziffern im ASCII-Code alle hintereinander sind, gibt Ord('5')-Ord('0') z.B. 5 zurück.
Damit sollte dir eigentlich die Entschlüsselung des Textes gelingen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
a3rosol
(Gast)

n/a Beiträge
 
#5

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:29
tut mir leid aber ich versteh immer noch nix...
leigt wahrscheinlich daran dass ich zu doof bin...
gibt es eine einfachere möglichkeit das problem zu lösen?
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:39
ich glaube du hast weisst immmer noch nicht was ord macht ne, dann schau dir mal die seite hier :

delphi kryptologie (event nach ord suchen, wenn du nicht alles lesen willst!!!

mfg
Martin
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:40
Für dich ganz langsam:
Binäre Zahlen werden so dargesetellt:

Wertigkeit: 4 2 1

Ziffer 0: 0 0 0
Ziffer 1: 0 0 1
Ziffer 2: 0 1 0
Ziffer 3: 0 1 1
Ziffer 4: 1 0 0
Ziffer 5: 1 0 1
Ziffer 6: 1 1 0
Ziffer 7: 1 1 1

Vielleicht kannst du nun den Code nachvollziehen?
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:40
Das Zeichen '0' hat im ASCII-Code den Wert 48, '1' den Wert 49 (wenn ich nicht irre, habe nicht nachgesehen). Durch Subtraktion kann also nur 0 oder 1 (als Zahl) dabei herauskommen. Was die Funktion tut, ist, einen String, der nur aus '0' und '1' besteht, binär wieder in eine Zahl zu wandeln. Schauen wir uns das mal mit der Beispielzahl 5 an (binär 101):

Der String lautet also '101', p ist initial 0.

Erster Durchlauf:
P := P*2 + (49 - 48) Zahl ist nun 1 (=> 0*2 + 1)
Zweiter Durchlauf:
P := P*2 + (48 - 48) Zahl ist nun 2 (=> 1*2 + 0)
Dritter Durchlauf:
P := P*2 + (49 - 48) Zahl ist nun 5 (=> 2*2 + 1)

Da der String nur 3 Zeichen hatte, sind wir nun fertig. Weiteres zur binären Logik findest Du hier.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
a3rosol
(Gast)

n/a Beiträge
 
#9

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 19:55
ah^^ danke du netter mensch aus schweina nun hab ichs kapiert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#10

Re: erklärt mir bitte ein programm

  Alt 18. Nov 2007, 20:08
Wenn der Autor das etwas anders formuliert hätte, wäre es einfacher zu verstehen gewesen:p:=p*2+ord(s[i])-ord('0'); geändert inp := p shl 1 or (ord(s[i])-ord('0')); So wird es IMHO deutlicher
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:00 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