目的想让一个10进制的数字转化成16进制 然后再减去5 可是下面的代码使程序崩溃了
(有什么别的办法把10进制转成16进制吗??这个16进制必须能进行加减运算 不能象inttohex那样只是返回一个字符串)
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,j,k:integer;begin
i:=4517944;
s:=inttohex(i,j); //inttohex函数返回的是string
k:=strtoint(s); //然后把他转成10进制 程序就挂了
edit1.text:=s;end;
(有什么别的办法把10进制转成16进制吗??这个16进制必须能进行加减运算 不能象inttohex那样只是返回一个字符串)
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,j,k:integer;begin
i:=4517944;
s:=inttohex(i,j); //inttohex函数返回的是string
k:=strtoint(s); //然后把他转成10进制 程序就挂了
edit1.text:=s;end;
解决方案 »
- 關于DELPHI 使用BDE中SQLMSS.DLL的問題,大蝦們多多幫忙
- tclientsocket版本不同
- 请问高手:在delphi中怎样将Excel单元格合并?
- delphi 中直接跳出循环体的语句是什么?
- 唯一的十分:希望大家帮帮忙:insertdata parameter ':fanghao_p' not found
- delphi中有像Jbuilder中的LayoutManager一样的控件吗?
- 求一SQL查询语言(可能不是很难,还请指教)
- delhi 中StrToFloat的问题
- 存储过程 Execsql
- 对不起,额外话题,现在哪儿有大的免费邮箱?15兆以上的,谢谢!
- (高分)求: 各位有没有ADO数据库编程方法的源码或资料?发就有分!
- write stream error???
strtoint这个函数不能使16进制转换为10进制
Var
Tmp:String;
i,Count,MoIn,DescIn,HexNum,N:Integer;
begin
Try
i:=0;
MoIn:=0;
DescIn:=0;
Count:=Length(SourceHex);
For i:=Count downto 1 do
begin
Tmp:=Copy(SourceHex,i,1);
HexNum:=HexWordToInt(Tmp);
if HexNum<>0 then
begin
MoIn:=HexNum*Floor(IntPower(16,Count-i));
if DescIn=0 then
DescIn:=MoIn
else
DescIn:=DescIn+MoIn;
end;
end;
Result:=DescIn;
Except
Result:=0;
end;
end;
你的这句注释有问题,计算机里头哪有什么“10”进制的integer啊?内存都是二进制表示的。只有“字符串”才有“几进制”这个说法。你想把16进制字符串直接转换成整数,而偏偏strtoint又只能识别十进制字符串,不挂就怪了。