Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
22. Jul 2020
Aber das ist doch nicht das, was man will (und erwartet), wenn die vier Byte eines Integers vertauscht werden sollen?!
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
22. Jul 2020
Ich finde es richtig schlimm, welche Tretminen sich immer wieder bei den scheinbar harmlosesten Sachen finden. OK, Delphi ist für Profis gemacht, aber ich bin sicher, dass ein Haufen Profis viele Tretminen nicht kennen.
Ich habe Swap immer für Word gebraucht, und dann die Hilfe gelesen. 2. und 3. Byte bei Integer? Wird seinen Grund haben, aber was zum Teufel bedeutet das in der Praxis? Das war...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
22. Jul 2020
Sekunde, der Speicher wurden doch mit ArrNum := ; reserviert. Und dass die Variable mit der Prozedur ins Nirwana geht, ist doch OK; die Prozedur geht ja noch ewig weiter und am Ende wird die Variable nicht mehr gebraucht.
Deine Hinweise mit var, OUT etc. sind natürlich sehr gut; ich kenne das alles, bin aber oft zu faul/träge/gedankenlos/... . Bei var vergesse ich immer, wann nötig und wann...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
22. Jul 2020
@Neutral General:Tja, du hast recht. Es geht um Folgendes: procedure Test;
var ArrNum:array of Byte;
begin
ArrNum := ;
i := PInteger(@ArrNum)^;
end;
Da kommt 134217728 heraus. Ich muss aber auf den Wert 8 kommen.
Ich habe eine Routine zum Umdrehen der Bytes eingesetzt, die ich aus einer umständlichen Vorlage kondensiert habe:function SwapArray(Arr:TBytes):TBytes;
var...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
22. Jul 2020
Über das Vertauschen von Bytes bei Little Endian <-> Big Endian findet man viel im Netz, auch hier wurde das Thema schon ausführlich diskutiert.
Wozu ich praktisch nichts gefunden habe, ist das Konvertieren bei Zahlen mit Vorzeichen, und insbesondere bei 64-Bit-Apps (da sind alle Assembler-Lösungen, die so gepostet werden, gleich vom Tisch).
Also - wie konvertiert man ShortInt, SmallInt,...