Home » Tipps & Tricks » Object Pascal » Sonstiges » Arbeiten mit Bits

Arbeiten mit Bits

Die Arbeit mit Bits (1011000101) kann sehr nützlich sein, vor allem für Verschlüsselung. Ich habe ein paar Routinen zur Umwandlung eines Zeichens in einen String (Länge 8) aus ‚1‘ und ‚0‘ und umgekehrt geschrieben.

const
B1: Byte = 128;
B2: Byte = 64;
B3: Byte = 32;
B4: Byte = 16;
B5: Byte = 8;
B6: Byte = 4;
B7: Byte = 2;
B8: Byte = 1;

// wird von den Routinen benögtigt
function TestBit(ByteToTest, BitNr: Byte): Boolean;
var
  I: Integer;
begin
  Result := False;
  if BitNr  Char
function BitToChar(S: string): Char;
var A, B: byte;
    T: string;
begin
  Result := ' ';
  T := S;

  if length(T) < 8 then
    while length(T)  8 do
      T := T + '0';

  if length(T) > 8 then
    delete(T, 9, length(T));

  B := 0;

  for A := 1 to 8 do
    if T[A] = '1' then
      case A of
        1: B := B or B1;
        2: B := B or B2;
        3: B := B or B3;
        4: B := B or B4;
        5: B := B or B5;
        6: B := B or B6;
        7: B := B or B7;
        8: B := B or B8;
      end;

  Result := Char(B);
end;

// Byte in String / String in Byte
function ByteToBit(B: Byte): string;
begin
  Result := CharToBit(Char(B));
end;

function BitToByte(S: string): Byte;
begin
  Result := Byte(BitToChar(S));
end;