Ist doch relativ einfach:
Wenn Du ein Zeichen (Byte) binär darstellen willst, bekommst Du einen String der 8 Zeichen Lang ist.
also so etwas 01010100.
Result:=' ';
dann werden alle Bits von "oben" nach "unten" (most signigficant/least significant ?)
in den String übertragen:
Delphi-Quellcode:
result[1]:=bina[(inbyte shr 7) and $01];
result[2]:=bina[(inbyte shr 6) and $01];
result[3]:=bina[(inbyte shr 5) and $01];
result[4]:=bina[(inbyte shr 4) and $01];
result[5]:=bina[(inbyte shr 3) and $01];
result[6]:=bina[(inbyte shr 2) and $01];
result[7]:=bina[(inbyte shr 1) and $01];
result[8]:=bina[(inbyte and $01)];
mit shr schiebst Du das zu verwertende Bit an die letzte Stelle und maskierst es mit $01.Wobei das $01 sicher stellt, daß immer 0 oder 1 als Ergebnis heraus kommt (eben das aktuell letzte Bit).
Und das nimmst Du als Index für ein Array (bina), das nur 0 und 1 enthält. So wird der Zahlenwert 0 als Ziffer 0 dargestellt und der Wert 1 als 1.
Delphi-Quellcode:
const
bina:array [0..1] of char=('0','1');
Ich hoffe das ist verständlich
K-H