溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

十六進(jìn)制數(shù)轉(zhuǎn)為字符串

發(fā)布時(shí)間:2020-07-28 00:18:07 來(lái)源:網(wǎng)絡(luò) 閱讀:273 作者:鵝倌 欄目:開(kāi)發(fā)技術(shù)

//-----------------------------------------------
//16進(jìn)制字符轉(zhuǎn)整數(shù),16進(jìn)制字符與字符串轉(zhuǎn)換中間函數(shù)
//-----------------------------------------------
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進(jìn)制字符轉(zhuǎn)字符串
//-----------------------------------------------

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;

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI