Autor Beitrag
Sqall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Do 27.01.05 19:03 
Also, ich muss ein verschlüsselungsprogramm schreiben. Das problem ist das die verschlüsselung (DES) mit Binärzahlen rechnet. Ich hab mir die Delphi hilfe noch nciht ganz angeguckt, hab im moment lieber weitere informationen für das verfahren und den algorithmus rausgesucht. Deshalb frage ich, kann ich mit delphi in binärzahlen rechnen? Wenn ja wie? Ansonsten müsste ich das mit nem array aus boolean oder so anstellen. Aber ich weiß nicht ob delphi mir das schon alles mitbringt. bevor ich das rat neu erfinde ^^ :D . Und wenn ich in binär zahlen rechnen kann, kann ich dann befehle wie AND,OR oder XOR benutzen?

mfg

Sqall

_________________
Bones... Promises... Both breakes
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Do 27.01.05 20:17 
Ja, warum nicht?

a and b
a xor b
a or b

auch in beliebiger Kombination:

(a and b) or c ...

P.S.: Du würdest nur das RAD neu erfinden. :wink:

_________________
Linux und OpenSource rulez!
GB
Hält's aus hier
Beiträge: 3

Win Me/Win XP
D3 Prof
BeitragVerfasst: Do 27.01.05 21:42 
Vielleicht hilft dir dieser Link weiter?
Hier werden Zahlen in andere Systeme umgerechnet. Du könntest also z.B alle Rechenoperationen im 10er System durchführen und dann umwandeln.

GB
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.01.05 14:06 
Ich hab da mal eine Veständnisfrage, die evtl. zur Lösung beiträgt. Wo ist der Unterschied, ob ich binär oder dezimal rechne?
ausblenden Quelltext
1:
2:
01+01 bin = 10 bin
 1+ 1 dez =  2 dez

Rechnerintern wird sowieso binär gerechnet. Die Frage, ob Delphi mit Binärzahlen rechnen kann, sollte also eher heissen, ob es mit Dezimalzahlen rechnen kann.

Oder hab ich das Problem in seiner Komplexität noch nicht ganz erfasst?

_________________
We are, we were and will not be.
Sqall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 28.01.05 17:35 
Wenn du so fragst kann ich dir direkt beantworten das delphi nur mit binär zahlen rechnet da ein PC nur mit binär zahlen rechnet. Die frage war eher ob es nen typ gibt mit Binärzahlen wo ich dann einfach (wie z.B. integer) die Zahl 1000101 habe. Es geht nicht darum ob delphi damit rechnet. Ich könnte dir jetzt auch noch erklären wie ein PC komplexe rechensachen wie e-funktionen oder wurzeln usw rechnet. Aber das gehört nicht zum thema.

mfg

Sqall

_________________
Bones... Promises... Both breakes
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.01.05 19:43 
Also gehts dir darum, die ausgerechneten Zahlen in der Binärdarstellung auszugeben, und evtl. Eingaben auch in der Binärdarstellung durchzuführen?

Integer in einen 0-1-String umwandeln geht z.B. so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
for i:=0 to 31 do  
//integer hat 32 Bits, Word 16, Byte 8
//Wie das mit dem Vorzeichen-Bit ist, weiss ich jetzt nicht...
  if ((int shr i) AND 1)=1
      then str:='1'+str
      else str:='0'+str;

_________________
We are, we were and will not be.
Sqall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Di 01.02.05 22:38 
Ich meine das so. Ich hab ne zahl aus binär zahlen wie zum beispiel eine 8bit lange (was wahrscheinlich ist den es geht um die verschlüsselung DES) und will die sagen wir mal mit einer anderen addieren oder ähnliches. ob es in delphi einen typen gibt für reine binär zahlen? Hab nichts gefunden. Müsste sachen wie xor ((a +b) mod 2 ^^ ) benutzen. mit boolean array zu rechnen ist nicht gerade gut da ich keine länge in den array[0] packen kann. Bin am überlegen ob ich records nehme die in dem array sind. Aber ist auch nciht so ne tolle lösung. wie gesagt. Wenn es ein type geben würde mit dem ich eh schon binär werte hab und mit denen auch direkt rechnen kann wäre das für mich ein viel faches einfacher.

mfg

Sqall

_________________
Bones... Promises... Both breakes
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Do 03.02.05 12:41 
Ich versteh dein Problem nicht. Jeder Integer ist eine Binärzahl. Du kannst zum Beispiel mit a and $1>0 überprüfen, ob das niedrigste Bit gesetzt ist. Du kannst genauso $8 or $1=$9 berechnen. Du musst dich nur damit abfinden, dass du mit Zahlen im Hexdezmalsystem oder im Dezimalsystem im Programm arbeitest, aber für den Computer sind das alles Binärzahlen.

_________________
Linux und OpenSource rulez!
Sqall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Do 03.02.05 13:39 
Ich versteh euch nicht. Ein Integer ist doch bis zu einer Zahl zu 2^(32-1).

Das bedeutet für mich das wenn ich die Zahl (ich will sie aber als Binär ansehen) 101 habe und dann + 110 nehme krieg ich mit dem typ integer 211 raus. Aber 101 binär ist im zehnersystem 5 und nicht 101. Das sit mein problem Wenn ich 101 + 110 rechnene will uch 1011 raus bekommen. Deshalb verstehe ich euch nicht.

_________________
Bones... Promises... Both breakes
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 03.02.05 13:56 
Ärgert Squall doch nicht so.
Ein Computer arbeitet (zur Zeit) immer binär. Der kennt intern nur 1 und 0.
Was der dummer Programmierer dann eintippt wird immer binär verarbeitet.

Leider kennt Delphi imho den Zahlentyp binary nicht.
Wenn dun jetzt eine Kombinationen von 1-en und 0-en, wird Delphi es also auch nicht als Binär-Zahl erkennen. Vermutlich wird daraus ein Integer. Deswegen wird dir jeder Versuch damit zu Rechnen, nicht das Ergebnis liefern, das möchtest.
Du bist wohl gezwungen, eine entsprechende Zahlenkombination umzubauen, dann "normal" damit zu rechnen, und das ganz zurückwandeln.
Oder du bastelst dir das ganze in Assembler.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Fr 04.02.05 12:38 
Du musst dass, was du binär addieren willst oder so erstmal ins Dezimal- oder Hexadezimalsystem umwandeln. Empfelenswert ist es die Zahlen ins Hexadezimalsystem umzuwandeln, weil das übersichtlicher ist.

binär = hexadezimal
1 = 1
10 = 2
100 = 4
1000 = 8
1001 = 9
1010 = A
1011 = B
1100 = C
1101 = D
1110 = E
1111 = F
10000 = 10
100000 = 20
1000000 = 40
10000000 = 80
11110000 = F0

Ich hoffe du hast das System verstanden.

_________________
Linux und OpenSource rulez!
Sqall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 04.02.05 13:50 
Wenigstens verstehen mich jetzt endlich mal welche. Ja das Hexadezimalsystem ist mir bekannt und wie man damit rechnet auch. Schade, hätte mir die arbeit um einiges einfacher gemacht wenn es den typ binary oder so gegeben hätte. Dann werde ich mal sehen wie ich das mache. Vielleicht mit nem Array aus bollean? Wer weiß, das überlasse ich meinem hoffentlich kreativen geist. Hab ja ungefähr noch nen monat um das programm fertig zu haben. Nächste woche fang ich mit dem proggi an. Thx leute

mfg

Sqall

_________________
Bones... Promises... Both breakes
0pf4
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 26.02.05 04:12 
hi,

kommt vlt etwas spät, aber ich versuchs trotzdem mal ...

du musst die zahlen nicht in binärzahlen umformen ... delphi kann die logischen operationen auch auf integer anwenden .. frag mal deine delphi-hilfe zum thema "Logical (bitwise) operators" ( ich habs bei delphi 6 getestet .. )