十六进制数转为字符串
admin
2023-08-02 21:48:27
0

//-----------------------------------------------
//16进制字符转整数,16进制字符与字符串转换中间函数
//-----------------------------------------------
function HexToInt2(hex: AnsiString): integer;
var
  i: integer;
  function Ncf(num, f: integer): integer;
  var
    i: integer;
  begin
    Result := 1;
    if f = 0 then exit;
    for i := 1 to f do
      result := result * num;
  end;
  function HexCharToInt(HexToken: Ansichar): integer;
  begin
    if Ord(HexToken) > 97 then
      HexToken := Ansichar(Chr(Ord(HexToken) - 32));
      Result := 0;
    if (Ord(HexToken) > 47) and (Ord(HexToken) < 58) then { chars 0....9 }
      Result := Ord(HexToken) - 48
    else if (Ord(HexToken) > 64) and (Ord(HexToken) < 71) then { chars A....F }
      Result := Ord(HexToken) - 55;
  end;
var
  a16int:Integer;
  ancf:integer;
begin
  result := 0;
    hex := ansiuppercase(trim(hex));
  if hex = '' then
    exit;
  for i := 1 to length(hex) do
  // result := result + HexCharToInt(hex[i]) * ncf(16, length(hex) - i);
  begin
    a16int := HexCharToInt(hex[i]);
    ancf := ncf(16, length(hex) - i);
    result := result + a16int * ancf;
   end;
end;

//-----------------------------------------------
//16进制字符转字符串
//-----------------------------------------------

function hextostring(str: AnsiString): AnsiString;
var
  s:AnsiString;
  i,j:integer;
  p:pchar;
  t:AnsiString;
  a16int:integer;
  a16char:AnsiString;
begin
   s:='';
   i:=1;
   //26044  236 ;182
   while i< length(str) do begin
      t:= str[i] + str[i+1];
      a16int := hextoint2(t);  //
//    a16int := 26044;
//    a16int := hextoint('ECB6');//
//    a16char := chr(a16int);
      if a16int <> 0 then
      begin
        a16char := ANSICHAR(a16int);
        s:= s + a16char;
      end;
//      s := #$EC + #$B6;
//      s := #236 + #182;
//      s := chr(236) + chr(182);
      i:=i+2;
   end;
   result:=s;
end;

相关内容

热门资讯

市数据局闻“风”而动、严阵以待... 今年第9号台风“巴威”逐渐逼近,市数据局迅速贯彻落实市委、市政府防汛防台工作部署要求,第一时间启动应...
中国航天杀入复用时代!真实差距... 7月10日12时15分,长征十号乙点火升空。一二级分离仅6分钟后,几十吨重的一子级受控再入大气层,一...
原创 纽... 7月10日,一条令人振奋的新闻传遍全球:中国长征十号乙运载火箭成功发射并采用了独特的“网系回收”技术...
苏州企业做微信小程序,为什么越... 这几年苏州本地想做微信小程序的商家明显多了——餐饮要扫码点单、零售要会员商城、服务行业要预约上门,连...
原创 2... 早年前大家很抵触联发科的芯片,甚至调侃“一核有难,八核围观”,但现在不同了,联发科芯片的实力大增,市...
日本宣布可回收火箭“试飞成功”... 据共同社报道,当地时间7月11日,日本宇宙航空研究开发机构(JAXA)宣布,可回收火箭RV-X原型机...
早报|苹果起诉OpenAI/努... 苹果起诉 OpenAI,指控其硬件团队窃取商业机密 态度大反转,马斯克盛赞 Anthropic 旗下...
台风“巴威”靠近,全台湾电力设... 今年第9号台风“巴威”暴风圈已于11日清晨正式触及台湾北部、东北部及东部陆地,台湾气象部门持续发布海...
萍乡小程序制作 这是(SEO151220)整理的信息,希望能帮助到大家 萍乡小程序制作 随着移动互联网的普及,小程序...
华研精机获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示华研精机(301138)新获得一项实用新型专利授权,专利名为“...