Функция преобразование символа типа Char в битовое представление — Pascal(Паскаль)

function char2bin(c: char): string;
var
  b, i: Byte;
  result: string;
begin
  b := Ord(c);
  result := '';
  //
  for i := 1 to 8 do begin
    //
    if ($80 = (b and $80)) then
      result := result + '1'
    else
      result := result + '0';
    //
    b := b shl 1;
  end;
  //
  char2bin := result;
end;

$80 = десятичное 128 (можно вместо $80 написать 128). При преобразовании самое главное свойство числа — это байт, у которого в старшем разряде 1 (единица) т.е. если это число записать в двоичном виде получим:
10000000

В программе символ (в переменную b записывает код этого символа) поочередно делается побитное логическое И с маской. Если в нашем числе в старшем разряде единица то после AND получим число с единицей в старшем разряде, т.е. $80. Если получили — значит у нас единица, если нет (получится ноль) — значит в старшем разряде числа у нас был нолик.
Потом число сдвигаем побитно на один разряд влево и повторяем операцию.

Leave a Comment

+ 6 = 9