![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
В том то и дело, что нужно перевести символы. Приведённый мною код переводит символы в двоичный код. А функция только числа.
|