将DELPHI代码改成C#

functionHexToInt1(s:string):integer;begins:=uppercase(s);//将S中的小写字母转换为大写。ifs>'9'thenr... function HexToInt1(s:string):integer;
begin
s:=uppercase(s); //将S中的小写字母转换为大写。
if s>'9' then result:=ord(s[1])-ord('A')+10 else result:=ord(s[1])-ord('0');
end;

function TFunctions.HexToBytes(s: OleVariant): OleVariant;
var ss:TStringStream; t,u:string;
begin
try
u:=s;
t:='';
while length(u)>0 do begin
t:=t + char(HexToInt1(copy(u,1,1))*16+HexToInt1(copy(u,2,1)));
delete(u,1,2);
end;
ss:=TStringStream.Create(t);
result:=StreamToVariant(ss);
except
result:='';
end;
end;
是不是取S的长度大于9?
展开
 我来答
chinekm
2009-12-09 · TA获得超过896个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:0
展开全部
int HexToInt1(string s)
{
int result;
s=s.ToUpper();
if(s[1]>'9') result=s[1]-'A'+10;
//开始没有太注意,后边总是截取1个长度的字符串来转换,这里就直接用s[1]了。
else result=s[1]-'0';
return result;
}

Object HexToBytes(Object s)
{
object result;
string t,u;//那ss没什么用,我也不知道TStringStream类能干什么。
try{
u=s;
t='';
while(u.Length>0)
{
t=t+(char)HexToInt1(u.SubString(1,1))*16+HexToInt1(u.SubString(2,1));
u=u.SubString(3);//u=u.SubString(3,u.Length-3);
}
result=(object)t;
}
catch(Exception ex){result='';}
return result;
}

variant = object
OleVariant = object
copy() = SubString()
delete() = SubString()
匿名用户
2009-12-09
展开全部
chinekm 回答的if(s>'9')肯定不对 ,字符串怎么能和字符比较呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式