Thema: Delphi Binärzahlen eingeben.

Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Binärzahlen eingeben.

  Alt 24. Okt 2009, 08:30
Zitat von Aphton:
Gibts ne Möglichkeit, Embarcadero oder halt den Zuständigen das vorzuschlagen?
Delphi-Quellcode:
  TBitFields = record
    case Boolean of
      False: ( x0, x1, x2, x3, x4, x5, x6, x7: Byte:1; ); // all diese Elemente besetzen nur 1 Bit
      True: ( x: Byte );
    end;
Früher ging das mit
Delphi-Quellcode:
  TBitFields = packed record
    case Boolean of
      False: ( x0, x1, x2, x3, x4, x5, x6, x7: Boolean);
      True: ( x: Byte );
    end;
heute nicht mehr. Der Grund ist einfach der, das die gepackte Darstellung kaum noch gebraucht wird, performancetechnisch einfach grauenhaft ist und das genaue Packverfahren, sowie die Reihenfolge im Speicher nicht immer klar definiert ist. Auf Bitebene sollte das zwar klar sein, aber schon bei Bytes verhält sich eine Intel-CPU anders als eine Motorola: Der gleiche Code würde auf einer anderen CPU zu anderen Ergebnissen führen, weil die Bytes vertauscht sind: Der Code ist nicht mehr deterministisch und damit unbrauchbar.

Besser (und vom Verständnis her sinnvoller) ist es doch, das Kodieren in einzelne Bits explizit selbst zu übernehmen. So schwer ist das doch nicht, und wurde hier schon exemplarisch erklärt.

Zudem sollte eine Kodierung nicht Bestandteil der Deklaration sein. Passt irgendwie nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat