Forum: PC-Programmierung [Delphi] Byte addieren?


von Byte (Gast)


Lesenswert?

Hallo,

kann mir jemand sagen, wie ich in Delphi ein Byte addieren kann?

Also Variable in Delphi x: Byte und y:Byte.

x = 192 (= 1100 0000) + y = 3 (= 0000 0011) = 195 (= 1100 0011)

Wie geht das in Delphi? Also ich will die beiden Bytes verknüpfen

von Peter II (Gast)


Lesenswert?

Versteht das Problem nicht.

a: byte;
b: byte;
c: byte:

a:= 12;
b:= 20;

c:= a + b;

von Byte (Gast)


Lesenswert?

Naja, ich will eigentlich die Bytes in Binärdarstellung verknüpfen.

 1100 0000
+0000 0011
----------
=1100 0011

von Peter II (Gast)


Lesenswert?

Byte schrieb:
> Naja, ich will eigentlich die Bytes in Binärdarstellung verknüpfen.

was versteht du unter verknüpfen? Oder, Xoder, UND oder doch wieder nur 
die Addition?

von Byte (Gast)


Lesenswert?

Und natürlich.

von Peter II (Gast)


Lesenswert?

Byte schrieb:
> Und natürlich.

c:= a and b;

von Horst H. (horha)


Lesenswert?

Hallo,

c:= a OR b;
c:= a AND b;
c:= a XOR b;
c:= NOT(a);

von Test (Gast)


Lesenswert?

@Byte:

Was soll denn bei der Verknüpfung von

10101100 mit
11001010

herauskommen?

von Tom (Gast)


Lesenswert?

Byte schrieb:
> Naja, ich will eigentlich die Bytes in Binärdarstellung verknüpfen.
>
>  1100 0000
> +0000 0011
> ----------
> =1100 0011


Byte schrieb:
> Und natürlich.

Das wäre aber ODER (OR)

von Byte (Gast)


Lesenswert?

Ich brauch ja von dem einen Byte auch nur den vorderen Teil und von dem 
anderen den hinteren Teil (also jeweils 4 bits)

von Peter II (Gast)


Lesenswert?

Tom schrieb:
> Das wäre aber ODER (OR)

nö, könnte auch Xor oder Addition sein.

von Reinhard Kern (Gast)


Lesenswert?

Byte schrieb:
> Naja, ich will eigentlich die Bytes in Binärdarstellung verknüpfen.

Das Programm verknüpft Daten binär. Das siehst du bloss von aussen 
nicht.

Gruss Reinhard

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Byte schrieb:
> Ich brauch ja von dem einen Byte auch nur den vorderen Teil und von dem
> anderen den hinteren Teil (also jeweils 4 bits)

Dann musst Du aber die unbenötigten Teile vor der "Verknüpfung" 
ausmaskieren.

   x := (a AND 15) OR (b AND 240)

15 ist 0x0F (00001111), 240 ist 0xF0 (11110000), keine Ahnung, wie man 
in dieser für viele Zwecke ungeeigneten Programmiersprache hexadezimale 
Konstanten schreibt.

von Delphi Liebhaber (Gast)


Lesenswert?

Hi Rufus,

das geht ganz einfach:

$FF
$FFFF
$FFFFFFFF
$FFFFFFFFFFFFFFFF

Die Sprache ist für sehr viele Zwecke super geeignet, mindestens genauso 
wie C++.

So ist Delphi nahezu die einzige Sprache die noch Standalone Exe Dateien 
auch für Windows 7 64 Bit erzeugt (im einstelligen Megabyte-Bereich), 
ohne DLL's, ohne .NET Geraffel, ohne das man Installerpackages erzeugen 
oder verwenden muss.

Einfach eine Exe, so wünscht man sich ich das, oder wie war das nochmal 
mit dem "manifest" ?

von Byte (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> 15 ist 0x0F (00001111), 240 ist 0xF0 (11110000), keine Ahnung, wie man
> in dieser für viele Zwecke ungeeigneten Programmiersprache hexadezimale
> Konstanten schreibt.

Also ich finde das völliger Schwachsinn. Jeder behauptet Delphi wäre 
eine nicht mehr genutze bzw. überflüssige Sprache. Doch mit ihr kann man 
doch relativ schnell Programme erstellen kann.

Vielleicht hier mal eine Liste um zu zeigen was alles mit Delphi 
erstellt wurde. Dabei auch sehr weit verbreitete bzw. häufig genutzte:
http://www.embarcadero.com/rad-in-action/application-showcase

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Delphi Liebhaber schrieb:
> So ist Delphi nahezu die einzige Sprache die noch Standalone Exe Dateien
> auch für Windows 7 64 Bit erzeugt

Nö, das geht nach wie vor auch mit einem C- bzw. C++-Compiler, selbst 
dem, der zum Visual Studio gehört.

Mein Seitenhieb auf Pascal bezog sich eher auf die erst mit 
Spracherweiterungen wie Delphi erlangte Nutzbarkeit und auf die meiner 
Ansicht nach sehr ... "logische" Syntax (wann exakt werden Zeilen mit 
Semikolon terminiert und wann nicht?).

von Das Merkel (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> (wann exakt werden Zeilen mit Semikolon terminiert und wann nicht?).

... also, in Delphi werden keine Zeilen, sondern Ausdrücke mit einem 
Semikolon beendet. Das ist nichts ungewöhnliches. In C/C++/C# kenne ich 
es nicht anders.

von Guido (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> (wann exakt werden Zeilen mit
> Semikolon terminiert und wann nicht?).

Garnicht, mit dem Semikolon werden Ausdrücke getrennt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Danke für die Spitzfindigkeiten. Ihr wisst beide exakt, was ich gemeint 
habe.

von Guido (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Ihr wisst beide exakt, was ich gemeint
> habe.

Nö, sorry, verstehe ich nicht. In pascaloiden Sprachen gehört
das Semikolon nicht zur Anweisung, in C-artigen schon.

von Thomas (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Danke für die Spitzfindigkeiten. Ihr wisst beide exakt, was ich gemeint
> habe.

Ja, ja - vorm else darf kein Semikolon stehen.

Dafür sagt einem Delphi, dass das da nicht hingehört, wären C krampfhaft 
versucht, dem Code hinter einem Fehler irgendwelchen Sinn zu entlocken 
und dann irgendwo weit entfernt zu scheitern, ohne in der Lage zu sein, 
irgendwelche ernsthaft hilfreichen Fehlermeldungen zu produzieren.

von Rolf Magnus (Gast)


Lesenswert?

Irgendwie sollte sich "Byte" mal entscheiden, welche Verknüpfung er denn 
nun eigentlich will...

Byte schrieb:
> kann mir jemand sagen, wie ich in Delphi ein Byte addieren kann?

Peter II schrieb:
>> Naja, ich will eigentlich die Bytes in Binärdarstellung verknüpfen.
>
> was versteht du unter verknüpfen? Oder, Xoder, UND oder doch wieder nur
> die Addition?

Byte schrieb:
> Und natürlich.

Tom schrieb:
> Das wäre aber ODER (OR)

Byte schrieb:
> Ich brauch ja von dem einen Byte auch nur den vorderen Teil und von dem
> anderen den hinteren Teil (also jeweils 4 bits)

von Schweigende Minderheit (Gast)


Lesenswert?

Ich mag Delphi. Ich mag C und ich mag Assembler. Und ich setze alles 
ein, je nachdem, wie es nötig ist.
Das Strichpunkt-else Problem ärgert mich auch, insbesondere da es in C 
anders ist und man permanent drauf reinfällt aber deswegen Delphi als 
pauschal ungeeignet abzutun? Naja....

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Schweigende Minderheit schrieb:
> pauschal ungeeignet

!= "für viele Zwecke ungeeignet"

Logik ist nicht so Dein Ding.

von Edi R. (edi_r)


Lesenswert?

Rufus Τ. Firefly schrieb:
> "für viele Zwecke ungeeignet"

Für welche Zwecke ist Delphi denn ungeeignet?

von Das Merkel (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Logik ist nicht so Dein Ding.

wenn Logik dein Ding wäre, hättest du dich in deinem ersten Beitrag 
schon klar ausgedrückt:

1. Du magst die Pascal-Syntax nicht und insbesondere stört dich, dass
2. vor dem else kein Semikolon stehen darf.

Geschrieben hast du aber "keine Ahnung, wie man in dieser für viele 
Zwecke ungeeigneten Programmiersprache hexadezimale Konstanten 
schreibt.", während es um Delphi ging.

Tja, auch mods machen manchmal Fehler. So ist das halt ...

von GeraldB (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Mein Seitenhieb auf Pascal bezog sich eher auf die erst mit
> Spracherweiterungen wie Delphi erlangte Nutzbarkeit und auf die meiner
> Ansicht nach sehr ... "logische" Syntax (wann exakt werden Zeilen mit
> Semikolon terminiert und wann nicht?).

Laut diesem Beitrag
http://www.bernd-leitenberger.de/pascal-und-c.shtml
ist eher C unlogisch und nicht nutzbar.

von Schweigende Minderheit (Gast)


Lesenswert?

>>Logik ist nicht so Dein Ding.

Vielen Dank für die Beleidigung.
Als Moderator würde ich so einen Beitrag löschen...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Edi R. schrieb:
> Für welche Zwecke ist Delphi denn ungeeignet?

Für die Erstellung von Programmen, die auf irgendwas anderem als 
Windows-PCs laufen sollen.

von Peter II (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Für die Erstellung von Programmen, die auf irgendwas anderem als
> Windows-PCs laufen sollen.

Kylix - Delphi for Linux

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

OK, das wars dann aber auch mit den Ausnahmen (wenn man das völlig 
obsolete DOS übersieht). Von aktiver Pflege und Weiterentwicklung kann 
allerdings bei Kylix auch nicht die Rede sein.

von Peter II (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> OK, das wars dann aber auch mit den Ausnahmen

NÖ, http://de.wikipedia.org/wiki/Free_Pascal

von Das Merkel (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Für die Erstellung von Programmen, die auf irgendwas anderem als
> Windows-PCs laufen sollen.

... und das soll eine Konsequenz aus Pascal's Syntaregeln sein ?

von Maik M. (myco)


Lesenswert?

> OK, das wars dann aber auch mit den Ausnahmen

XE2 kompiliert auch für OS X und iOS (sogar von Windows aus)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter II schrieb:
> NÖ, http://de.wikipedia.org/wiki/Free_Pascal

Das ist Pascal, nicht Delphi. Und Pascal wurde erst durch die 
Borland'schen Erweiterungen zu mehr als einem Lehrsystem verwendbar. Ich 
verweise hier auf das in Pascal nicht mögliche modulare Programmieren 
und auf die besonders grottigen Dateizugriffmechanismen in Pascal.

"Turbo-Pascal" als Delphi-Vorläufer hat hier etliche der fehlenden Dinge 
hinzugefügt.

Das Merkel schrieb:
> ... und das soll eine Konsequenz aus Pascal's Syntaregeln sein ?

Natürlich nicht, aber wenn man sich Mühe gibt, Dinge nicht verstehen zu 
wollen, dann kann man auch auf so eine Idee kommen.

von Peter II (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das ist Pascal, nicht Delphi.

Die verschiedenen Dialekte können sowohl über Kommandozeilenschalter als 
auch im Quelltext durch $MODE ausgewählt werden. Derzeit sind folgende 
Einstellungen möglich:

    Delphi – Delphi-Kompatibilitätsmodus
    TP – Turbo-Pascal-Kompatibilitätsmodus (Object-Pascal-Erweiterungen 
werden abgeschaltet)
    FPC – Der Vorgabemodus
    OBJFPC – FPC mit Object-Pascal-Erweiterungen
    GPC – GNU-Pascal-Kompatibilitätsmodus
    MACPAS – Kompatibilitätsmodus für Pascaldialekte auf Mac OS, wie 
Think Pascal, Metrowerks Pascal und MPW Pascal

von Das Merkel (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Natürlich nicht, aber wenn man sich Mühe gibt, Dinge nicht verstehen zu
> wollen, dann kann man auch auf so eine Idee kommen.

> Danke für die Spitzfindigkeiten. Ihr wisst beide exakt, was ich gemeint
> habe.

Sorry, Rufus, ich weiß es bisher immer noch nicht, würde es aber gerne 
wissen. Ich weiß bisher, dass dir die Syntax von Pascal nicht passt und 
dass du es schlecht findest, dass Delphi nur in der Windows-Welt benutzt 
wird.

Ein Beispiel für deine Behauptung, dass Delphi zur Programmierung von 
vielen Dingen ungeeignet sei, hast du bisher immer noch nicht gebracht. 
Kannst Du mal ein konkretes Programmierproblem nennen, für das Delphi 
ungeeignet ist ?

von Robert L. (lrlr)


Lesenswert?

(nachdem der TO nicht in der Lage ist, die Frage so zu formulieren, dass 
sie auch irgendjemand versteht, machen wir mal OT weiter..)


@Rufus Τ. Firefly

du machst dich hier ziemlich lächerlich

(sorry)

JEDE Programmiersprache ist "für viele Zwecke ungeeignet"
Aussage = 0
sollte also wohl nur provozieren, was ja geschafft wurde ;-)


viele Sachen die du schreibst stimmen nicht (mehr)
dass man z.B. nur für Win32 programmieren kann (siehe XE2 und Lazarus)
man nicht modular programmieren kann (wobei ich nicht genau weiß was du 
meint) (siehe BPL Dateien oder multitier/datasnap usw )

das mit dem ";" hab ich hier schon mal beantwortet
Beitrag "Re: Compiler bringt Fehlermeldung verkettetet Liste-weshalb?"

edit: Kylix ist allerdings etwas, ...was man als delphi/pascal 
"Befürworter" nicht als 1. Argument bringen würde ;-)

von Hannibal (Gast)


Lesenswert?

Tja, das Schweigen des Lammes!

von W.S. (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das ist Pascal, nicht Delphi. Und Pascal wurde erst durch die
> Borland'schen Erweiterungen zu mehr als einem Lehrsystem verwendbar.

Nanana, mein Lieber. Mit einem hast du Recht: Die Sprache ist PASCAL - 
auch bei Delphi.

Also:
Man programmiert also nicht in Delphi, sondern mittels Delphi in 
Pascal - und das ist dank des Konzeptes von Delphi als grafisch 
orientiertem Entwurfssystem um Größenordnungen besser, einfachen und 
schneller als der Rest der Welt, wenn man mal vom längst untergegangenen 
VB3 absieht.

Abgesehen davon ist die Sprache Pascal schon immer wesentlich besser 
weil systematischer und sauberer im Sprachkonzept gewesen als alle 
Dialekte von B, BCPL, C, Ansi-C, C++, Java, C# und was da noch so kommen 
mag. Ich denke mal, daß all diejenigen, die noch Pascal resp. Delphi 
kennen, gut daran tun, dieses Software-Gefilde am Leben zu erhalten. 
Solche Dinge wie FPC, Lazarus, MSEide und Konsorten (incl. Virtual 
Pascal) können den Leuten zeigen, daß es auch anders geht als mit Visual 
C. Nebenbei: Ich hatte Mitte der 80er Jahre Gerätesteuerungen mit 
HiTech-Pascal geschrieben, Pascal war damals schon für 
Maschinensteuerungen geeignet. Als ich dann das ach so tolle C sah, 
hat's mir erstmal den Magen umgedreht... Ich sag's mal so: C ist erste 
Wahl für Leute, die ihre Unabkömmlichkeit durch unverständliche Quellen 
sicherstellen wollen. Und nun genug gemeckert. Gute Nacht zusammen.

W.S.

von Martin S. (mse)


Lesenswert?

Rufus Τ. Firefly schrieb:
> keine Ahnung, wie man
> in dieser für viele Zwecke ungeeigneten Programmiersprache hexadezimale
> Konstanten schreibt.

Free Pascal kennt auch binäre Konstanten: %10101010
http://www.freepascal.org/docs-html/ref/refse6.html#x18-170001.6
Bit gepackte strukturierte Datentypen gibt es ebenfalls.
http://www.freepascal.org/docs-html/ref/refse14.html

Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.