|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Двоичное кодирование Здравствуйте. У меня есть исходник: Код: type
  Bits=array [0..7] of byte;
procedure dec2bin(x:byte; var b:Bits);
var bit,i:byte;
begin
  for i:=7 downto 0 do
  begin
    if (x and (1 shl i))<>0 then bit:=1 else bit:=0;
    b[i]:=bit;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
  
Var    f:TextFile;
     ch:char;
      b:Bits;
       i: Integer;
  s: string;
begin
   Memo1.Clear;
   AssignFile(f,'12345.txt');//Связываем переменную f с выбранным файлом
  Reset(f);//Открываем файл для чтения
  while not(eof(f)) do//это условие позволяет определить конец файла
  begin
  read(f,ch);//Считываем первый символ теста
    {Тут вставь различные обраоботки}
    dec2bin(Ord(ch),b);
      for i:= 0 to 7 do
    s:= s + IntToStr(b[i]);
      Memo1.Lines.Add(s);
       {Тут вставь вывод в Memo}
  end;
  CloseFile(f);//Закрываем файл
  Edit1.Text:=IntToStr(Memo1.Lines.Count);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 Memo1.Lines.SaveToFile('s.txt');
end;Который переводит символы в двоичный код. Акто мне подскажет : как сделать обратные действия? Последний раз редактировалось Admin, 19.05.2008 в 10:37. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Sum[n = 0..7](b(n)*2^n); т.е. для 00001101 = 0*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 1*2^3 + 1*2^2 + 1*2^0 = 8 + 4 + 1 = 13 | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Или в виде кода: Код: function BinToDec(ABin : Bits) : Integer;
var
  I : Integer;
begin
  Result := 0;
  For I := 0 To 7 Do
    If ABin <> 0 Then Result := Result + power(2,I);
end; | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   В том то и дело, что нужно перевести символы. Приведённый мною код переводит символы в двоичный код. А функция только числа. |