从网上找到的代码...
为什么在10进制转到64等高进制时,只显示1,而后面的字母显示不了?
BUG?
{ 返回 Base 的 Exponent 次方 }
function IntPower(Base, Exponent: Integer): Integer;
var
I: Integer;
begin
Result := 1;
for I := 1 to Exponent do
Result := Result * Base;
end; { IntPower } { 返回整数的进制表示 ;mScale 指定多少进制 ;mLength 指定长度 ,长度不足时向前补 0 }
function IntToDigit(mNumber: Integer; mScale: Byte; mLength: Integer = 0): string;
var
I, J: Integer;
begin
Result := '';
I := mNumber;
while (I >= mScale) and (mScale > 1) do begin
J := I mod mScale;
I := I div mScale;
Result := cScaleChar[J + 1] + Result;
end;
Result := cScaleChar[I + 1] + Result;
for I := 1 to mLength - Length(Result) do Result := '0' + Result;
end; { IntToDigit }{ 返回进制表示转换成整数 ;mScale 指定多少进制 }
function DigitToInt(mDigit: string; mScale: Byte): Integer;
var
I: Byte;
L: Integer;
begin
Result := 0;
mDigit := UpperCase(mDigit);
L := Length(mDigit);
for I := 1 to L do
Result := Result + (Pos(mDigit[L - I + 1], cScaleChar) - 1) * IntPower(mScale, I - 1);end; { DigitToInt }Edit2.Text := IntToDigit(StrToIntDef(Edit1.Text,0),64);//问题是到这里时,只显示一个数字..后面的字母不能显示
为什么在10进制转到64等高进制时,只显示1,而后面的字母显示不了?
BUG?
{ 返回 Base 的 Exponent 次方 }
function IntPower(Base, Exponent: Integer): Integer;
var
I: Integer;
begin
Result := 1;
for I := 1 to Exponent do
Result := Result * Base;
end; { IntPower } { 返回整数的进制表示 ;mScale 指定多少进制 ;mLength 指定长度 ,长度不足时向前补 0 }
function IntToDigit(mNumber: Integer; mScale: Byte; mLength: Integer = 0): string;
var
I, J: Integer;
begin
Result := '';
I := mNumber;
while (I >= mScale) and (mScale > 1) do begin
J := I mod mScale;
I := I div mScale;
Result := cScaleChar[J + 1] + Result;
end;
Result := cScaleChar[I + 1] + Result;
for I := 1 to mLength - Length(Result) do Result := '0' + Result;
end; { IntToDigit }{ 返回进制表示转换成整数 ;mScale 指定多少进制 }
function DigitToInt(mDigit: string; mScale: Byte): Integer;
var
I: Byte;
L: Integer;
begin
Result := 0;
mDigit := UpperCase(mDigit);
L := Length(mDigit);
for I := 1 to L do
Result := Result + (Pos(mDigit[L - I + 1], cScaleChar) - 1) * IntPower(mScale, I - 1);end; { DigitToInt }Edit2.Text := IntToDigit(StrToIntDef(Edit1.Text,0),64);//问题是到这里时,只显示一个数字..后面的字母不能显示
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货