首页 > 其他 > 详细

Delphi XE2 16进制转10进制《LceMeaning》

时间:2014-05-10 07:48:23      阅读:418      评论:0      收藏:0      [点我收藏+]

以下在编写IC卡项目时出现卡号转换错误时的解决方法,在XE2下测试正常。
================================================ 

bubuko.com,布布扣
uses
  math;

function HexToDec(Hex : string) : string;
var
 i : integer;
 res : real;
 len : integer;
begin
   len := length(Trim(Hex));
   for i := 1 to len do
   begin
     case Hex[i] of
       0..9: res := res + strToInt(Hex[i]) * power(16,(len-i));
       a..f: res := res + (ord(Hex[i]) - ord(a) + 10) * power(16,(len-i));
       A..F: res := res + (ord(Hex[i]) - ord(A) + 10) * power(16,(len-i));
     end;
   end;
   result := FloatToStr(res);
end;


var 
  CardName : string;
  sWriteData:array[0..320]of AnsiChar;  //16进制卡号
begin
  CardName := AnsiString(sWriteData1); //如果这里不先转化为AnsiString,则有时能正确转换,有时转换后的结果错误
  CardName := HexToDec(CardName);
end;
bubuko.com,布布扣

 

 

 

Delphi XE2 16进制转10进制《LceMeaning》,布布扣,bubuko.com

Delphi XE2 16进制转10进制《LceMeaning》

原文:http://www.cnblogs.com/LceMeaning/p/3719395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!