我正在编写一个将八进制数转换为十进制和十六进制的程序。我写了一个函数,叫做OctToInt
.
function OctToInt(Value: string): Longint;
var
i: Integer;
int: Integer;
begin
int := 0;
for i := 0 to Length(Value) do
begin
int := int * 8 + StrToInt(Copy(Value, i, 1));
end;
Result := int;
end;
我以这种方式调用此函数:
var oct:integer;
begin
oct:=OctToInt(Edit13.Text);
Edit15.Text:=IntToStr(oct);
end;
当我输入34
(八进制)时,十进制数应该是 28,但程序给了我 220。你知道为什么吗?
另外,您对转换器 OctToHex 有任何想法吗?