function BTFBOC_Convert(number: string): string; // to one's complement var i: Integer; begin if number[1] = '1' then begin result := number[1]; for i := 2 to Length(number) do case number[i] of '1': result := result + '0'; '0': result := result + '1'; '.': result := '.'; end; end else result := number; end; /// why it's works ? function BTFBTC_Convert(number: string): string; // to two's complement begin if number[1] = '1' then begin number := BTFBOC_Convert(number); result := number; result[1] := '0'; result := BTFAddition(result, '01'); result[1] := '1'; end else result := number; end;