Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi bin2dec (https://www.delphipraxis.net/3913-bin2dec.html)

n00b_on_knees 6. Apr 2003 10:21

das sind nicht gerade wenig lösungen! seid ja echte profis ;) werde mir halt mal alles zusammenbasteln, ich frage mich nur wie ich meinem lehrer erkläre wo ich die guten lösungen herhabe :spin:

@daniel ist das anstatt mit den ganzen if abfragen nicht irgenwie mit einem case oder etwa einer schleife wo sich der wert verdoppelt besser?

Daniel B 6. Apr 2003 10:27

Zitat:

Zitat von n00b_on_knees
das sind nicht gerade wenig lösungen! seid ja echte profis ;) werde mir halt mal alles zusammenbasteln, ich frage mich nur wie ich meinem lehrer erkläre wo ich die guten lösungen herhabe :spin:

Nun, ich denke das da sogar Lösungen dabei sidn die sogar Er nicht kennt. ;) :mrgreen:
Aber sag doch, Du hast Dir sagen lassen welche Funktionen man für sowas braucht, dann hast Du Dir die OH zu den ganzen sachen angeschaut, hast Dein Hirn eingeschaltet und das alles zusammengebastelt. :)
Zitat:

@daniel ist das anstatt mit den ganzen if abfragen nicht irgenwie mit einem case oder etwa einer schleife wo sich der wert verdoppelt besser?
Es wird Dich keiner davon abhalten es selbst zu machen, möglich ist es aber recht umständlich und Dein Lehrer würde warscheinlich sehr schnell merken dass das nicht von Dir ist.
Wenn Du es aber selbst kapierst/machst, dann kannst Du es Ihm sogar erklären.
Aber ich denke das Du schon genug Lösungen hast. Mehr als eine 1+ kannst Du eh nicht bekommen. ;)

Grüsse, Daniel :hi:

n00b_on_knees 6. Apr 2003 10:39

Delphi-Quellcode:
  iErgebnis := 0;
  bByte := StrToInt(Edit1.Text);
  if (bByte and 1) <> 0 then
  iErgebnis := iErgebnis + 1;


  ....

  if (bByte and 128) <> 0 then
  iErgebnis := iErgebnis + 128;
ich verstehe nur von diesem nicht so ganz den sinn, also das mit den zuweisungen ist mal klar, dann...

Delphi-Quellcode:
wenn das Editfeld und 1 ungleich 0 sind dann
setze das Ergebnis auf Ergebnis + 1;

...

wenn das Editfeld und 128 ungleich 0 sind dann
setze das Ergebnis auf Ergebnis + 128;
wozu das 'und' in der if Abfrage? das verstehe ich nicht ganz

// achja nochmal zu dem mit dem Case, ich denke mal es fällt am wenigsten richtig auf wenn ich Case einbaue, oder es mit einem else Zweig versuche ;)

Daniel B 6. Apr 2003 10:49

Da sieht man es wieder, Dir fehlt es einfach an den Grundlagen, daher solltest Du dies wohl eher nicht benutzen, es sei denn Du kannst es erklären.
Also,

and spielt in diesem Zusammenhang eine ganz andere Rolle und zwar nicht ein normales and wie als wenn man z.B. zwei Variablen vergleichen würde.
Delphi-Quellcode:
if (i = 0) and (j = 1) then
Das end Vergleicht hier einfach nur als "Boolean, wenn also beides Zutrifft, dann gehts weiter.
Aber wenn Du ein Byte, ein and und ein ZahlenWert einen Bytes dann kannst Du damit Prüfen ob bestimmte Bity eines Bytes 1 oder 0 sind. Das ist etwas blöd zum Erklären.
Also ein Byte hat ja 8 Bits, Bit 0 bis Bit 7.
Bit 0 hat die Wertigkeit 1, das nächste 2, das nächte 4 usw, Bit 7 hat also die Wertigkeit 128. Und wenn alle 8 Bits 1 sind, dann hat Dein Byte den Wert 255. Ganz normale Binärrechnung.

Bei meinem Code, orüft man jedes Bit in dem Byte einzeln ob es 0 oder 1 ist. Wenn es 0 ist dann gehts micht ncihts an und wenn das Bit eine 1 ist, dann muss ich es also Addieren.

Delphi-Quellcode:
if (bByte and 8) <> 0 then iErgebnis := iErgebnis + 8;
Wenn also das Bit 3 ungleich 0 ist, wäre dann also 1, dann muss man ja das Ergebniss um 8 erhöhen.
Ausgeschrieben sieht es dann so aus:
Code:
BitNr.
87654321
00000001 = 1
00000010 = 2
00001000 = 8
Hoffe das es jetzt verständlicher ist.

Grüsse, Daniel :hi:

n00b_on_knees 6. Apr 2003 10:55

ok danke, jetzt versteh ich das besser... binärrechnen kann ich, trotzdem danke, mir war nur das mit dem "and" nicht so ganz klar...!

tja die grundlagen... ich bin in der schule (bin im herbst in die erste klasse neu reingekommen) nicht gerade sehr gut in programmieren, ist wohl nicht gerade ein besonderes talent von mir, bin gerade mit einer 4 durchgekommen...!

Christian Seehase 6. Apr 2003 12:10

Moin Daniel,

eines ist mir gerade wieder aufgefallen:
Du errechnest aus einer Dezimalzahl eine Dezimalzahl, Noob on Knees möchte aber aus einer Binärzahl (Zahl mit Basis 2) eine Dezimalzahl (Zahl mit Basis 10) errechnen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz