Ильницкий В.Г. - старший преподаватель кафедры программного обеспечения
Костанайский
государственный университет им.А.Байтурсынова, Казахстан
Программа,
демонстрирующая работу с информацией
на
уровне битов
При изучении темы работы с данными на низком уровне,
например при изучении некоторых методов криптографии, предлагается небольшая
программа, которая наглядно показывает связь вводимой с клавиатуры текстовой
информации и двоичной системой счислений, а также демонстрирует выполнение двух
логических операций «Не» и «Исключающее ИЛИ», которые наиболее часто
применяются в некоторых криптографических методах. При вводе с клавиатуры
произвольного символа, программа
распечатывает его 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 с.