Ильницкий В.Г. - старший преподаватель кафедры программного обеспечения

Костанайский государственный университет им.А.Байтурсынова, Казахстан

 

Программа, демонстрирующая работу с информацией

на уровне битов

 

При изучении темы работы с данными на низком уровне, например при изучении некоторых методов криптографии, предлагается небольшая программа, которая наглядно показывает связь вводимой с клавиатуры текстовой информации и двоичной системой счислений, а также демонстрирует выполнение двух логических операций «Не» и «Исключающее ИЛИ», которые наиболее часто применяются в некоторых криптографических методах. При вводе с клавиатуры произвольного символа,  программа распечатывает его ASCII код и показывает его двоичное представление. При нажатии на кнопку выполнения логической операции в результирующем окне появляется  преобразованный символ, его ASCII код и его двоичное представление.

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Перевод числа в двоичную форму предлагается произвести с помощью данной вспомогательной процедуры, которая, используя алгоритм деления числа на 2 формирует строку из «0» и «1», соответствующую двоичному представлению данного числа.

 

procedure dwa(n:byte;var s: string);

begin  s:='';

  while n>0 do

       begin    s:= intToStr(n mod 2)+s;    n:=n div 2   end;

end;

 

Следующая процедура выполняет операцию «Отрицания» и записывает результаты в соответствующие ячейки.

 

procedure TForm1.Button1Click(Sender: TObject);

       var b,bb:byte;  s:string;

begin

 b:=StrToInt(Edit2.text); bb:= not b;

 Edit8.Text:=IntToStr(bb);   Edit7.Text:=chr(bb);

 dwa(bb,s);  Edit9.Text:=s;

end;

 

Следующая процедура выполняет операцию «XOR» и записывает результаты в соответствующие ячейки.

 

procedure TForm1.Button2Click(Sender: TObject);

          var b,bb,p:byte;  s:string;

begin

       b:=StrToInt(Edit2.text);   p:=StrToInt(Edit5.text);

       bb:= b xor p;

       Edit8.Text:= IntToStr(bb);    Edit7.Text:=chr(bb);

       dwa(bb,s); Edit9.Text:=s;

end;

 

Следующая процедура заполняет  соответствующие ячейки сразу же при нажатии произвольной клавиши.

 

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);

                var s:string;

begin     

              edit4.Text:=key;   edit5.Text:=IntToStr(ord(key));

              dwa(ord(key),s);   edit6.Text:=s

end;

 

Литература:

1.     Фаронов В.В. Система программирования Delphi. –СПб.: БХВ – Петербург, 2003. – 912 с.

2.     Архангельский А.Я. Программирование в Delphi7. – М.: ООО «Бином пресс», 2004. – 1152 с.