
22.06.2010, 23:25
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
На (около 30 минут потратил  ):
Код:
function Str_IntToBin(AIn : String) : String;
var
I, J, N : Integer;
begin
For I := 1 To Length(AIn) Do
If Not (AIn[i] In ['0'..'9']) Then
Raise Exception.Create('Input string contains nonnumber characters.');
Result := '';
For I := Length(AIn) DownTo 1 Do
Begin
N := Ord(AIn[i]) - Ord('0');
For J := 1 To 4 Do
Begin
If (N And 1) = 0
Then Result := '0' + Result
Else result := '1' + Result;
N := N Shr 1;
End;
end;
end;
function Str_BinToInt(AIn : String) : String;
var
I, N : Integer;
Quad : String;
begin
If Length(AIn) Mod 4 <> 0 Then
Raise Exception.Create('Input string contains wrong number of characters.');
For I := 1 To Length(AIn) Do
If Not (AIn[i] In ['0'..'1']) Then
Raise Exception.Create('Input string contains nonnumber characters.');
Result := '';
While AIn <> '' Do
Begin
N := 0;
Quad := Copy(AIn,1,4);
For I := 1 To Length(Quad) Do
Begin
N := N Shl 1;
If Quad[i] = '1' Then N := N Or 1;
End;
Result := Result + Chr(N + Ord('0'));
AIn := Copy(AIn,5,Length(AIn)-4);
End;
end;
|