问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

delphi中类型转换如把一个字符串转成整型,这个装换过程执行了什么操作呢?有点不能理解

发布网友 发布时间:2022-05-30 19:55

我来回答

1个回答

热心网友 时间:2023-11-08 10:30

delphi7源码system.valLong,用于将字符串包括16进制转换为整数。
各个字符转整数底层一般调用了val函数,val函数原型是_ValLong
function _ValLong(const s: String; var code: Integer): Longint;
var
I: Integer;
Negative, Hex: Boolean;
begin
I := 1;
code := -1;
Result := 0;
Negative := False;
Hex := False;
while (I <= Length(s)) and (s[I] = ' ') do Inc(I);
if I > Length(s) then Exit;
case s[I] of
'$',
'x',
'X': begin
Hex := True;
Inc(I);
end;
'0': begin
Hex := (Length(s) > I) and (UpCase(s[I+1]) = 'X');
if Hex then Inc(I,2);
end;
'-': begin
Negative := True;
Inc(I);
end;
'+': Inc(I);
end;
if Hex then
while I <= Length(s) do
begin
if Result > (High(Result) div 16) then
begin
code := I;
Exit;
end;
case s[I] of
'0'..'9': Result := Result * 16 + Ord(s[I]) - Ord('0');
'a'..'f': Result := Result * 16 + Ord(s[I]) - Ord('a') + 10;
'A'..'F': Result := Result * 16 + Ord(s[I]) - Ord('A') + 10;
else
code := I;
Exit;
end;
end
else
while I <= Length(s) do
begin
if Result > (High(Result) div 10) then
begin
code := I;
Exit;
end;
Result := Result * 10 + Ord(s[I]) - Ord('0');
Inc(I);
end;
if Negative then
Result := -Result;
code := 0;
end;

类型强转
另外 int i =integer(string1) 估计相当于c语言的取得对象到指针,后续用 string1=string(i)相当于将指针接引用为对象、
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
关于海贼王的碟 海贼王852什么时候更新的最新相关信息 买个1G或2G的U盘要多少钱 请问1G的金士顿U盘的价格是多少? 低血糖可能另有隐情 “假性低血糖”需警惕 自发性血糖过低症[治疗] 2020年 巨蟹座到几月几日才能20岁? 1991年出生的20岁巨蟹座的女生是怎么样的 手机安全气囊发明背景 手机安全气囊简介 怎样用Delphi 来取一个整数的字节的代码 delphi 怎么把浮点型转换为整型 delphi 求整数各位数字 输入一个任意4位整数,计算千位、百位、十位和个位上的数字 Delphi中有将Double类型数据取整的函数吗 delphi自动获取在一定范围内的有序整数怎么写? 摩托车火花塞也要分125和150吗,还是、只要是长短、大小一样就可以用呢 delphi 取出一段字符串的整数 Delphi 中怎么实现一个公式求整数去掉小数点后面部分,和怎么让程序关闭后在打开edit显示关闭前的数据。 Delphi中取整的函数是什么? delphi 取整函数 Delphi中怎么将实数取整 马自达3火花塞是长的还是短的 铃木摩托车火花塞直径多长 06年老天籁火花塞的长度多少 更换火花塞后抖动是否与火花塞长短有关? “戏曲院团*改革”专题研究:戏曲院团*改革的隐忧与解困 采访戏曲讲座有哪些问题可以问 不同长短的火花塞有什么区别? 山语世家怎么样?好不好?值不值得买? 长沙市苡与凡贸易有限公司怎么样? 用delphi写一个程序求一个整数的各位数字,例如123的百位。十位。个位。。急啊帮做出在加分 在delphi中随机的产生15个【-50,100】内的整数,并在前端界面上显示出来。该怎么做? 高1生物几道问题 delphi 分别取数字部分 delphi 取access数据库数据 ,dbgrid显示整数0或1失真,数字变成很大 delphi中如何对一段pchar空间转换成整型值。 delphi 整数的位数 用Delphi怎么才能让一个整数随时间变化随机在给定范围内变化 delphi 将一个整数如123的个位四舍五入。 交管12123能处理异地违章吗? 几何A的魅力何在,感受一下你就知道 &quot;报信&quot;的报是什么意思 通风报信属于违反什么纪律? 什么事高陡构造 几何A,真金不怕火炼,说说我的用车感受 白事怎么去别人家报信? 山前构造和高陡构造是怎样定义的?两者之间有什么联系? 几何A动力十足完全满足家用,弹性、柔软度也是很满意 古代向君主报信的人怎么称呼 为罪犯通风报信构成何罪?