亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi下常用轉換(一)

2019-11-18 18:47:48
字體:
來源:轉載
供稿:網友

Delphi下常用轉換
作者:lyboy99
e-mail:lyboy99@sina.com  
url: http://hnh.126.com
給大家提供幾個常用的轉換方法和其轉換函數
希望可以對你有幫助

1.HEX -> Integer
2.2.Dec To HEX
3.ASCII to HEX / math
4.Binary to decimal

==============================================================
1.HEX -> Integer
==============================================================
方法. 1
--------------------------------------------------------------------------------

var
  i : integer
  s : string;
begin
  s := '$' + ThatHexString;
  i := StrToInt(a);
end;


--------------------------------------------------------------------------------

方法. 2

--------------------------------------------------------------------------------

CONST HEX : ARRAY['A'..'F'] OF INTEGER = (10,11,12,13,14,15);
VAR str : String;
    Int,
    i   : integer;
BEGIN
  READLN(str);
  Int := 0;
  FOR i := 1 TO Length(str) DO
    IF str[i] < 'A' THEN Int := Int * 16 + ORD(str[i]) - 48
    ELSE Int := Int * 16 + HEX[str[i]];
  WRITELN(Int);
  READLN;
END.

===================================================
2.Dec To HEX

--------------------------------------
HexString := Format('%0x',DecValue);
--------------------------------------


====================================================
3.ASCII to HEX / math
------------------------
unit Hexstr;

interface
uses String16, SysUtils;

Type
 PByte = ^BYTE;

PRocedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: Word);
procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);
procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);

implementation
procedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);
Const
    HexChars : Array[0..15] of Char = '0123456789ABCDEF';
var
    i, j: WORD;
begin
 SetLength(hHexStr, (InputLength * 2));
 FillChar(hHexStr, sizeof(hHexStr), #0);
 j := 1;
 for i := 1 to InputLength  do begin
    hHexStr[j] := Char(HexChars[pbyteArray^ shr  4]); inc(j);
    hHexStr[j] := Char(HexChars[pbyteArray^ and 15]); inc(j);
    inc(pbyteArray);
 end;
end;

procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);
var
 i: WORD;
 c: byte;
begin
 SetLength(Response, InputLength);
 FillChar(Response, SizeOf(Response), #0);
 for i := 0 to (InputLength - 1) do begin
   c := BYTE(hexbytes[i]) And BYTE($f);
   if c > 9 then
     Inc(c, $37)
   else
     Inc(c, $30);
   Response[i + 1] := char(c);
 end;{for}
end;

procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);
{pbyteArray must point to enough memory to hold the output}
var
 i, j: WORD;
 temPPTr: PChar;
 twoDigits : String[2];
begin
 tempPtr := pbyteArray;
 j := 1;
 for i := 1 to (Length(hHexStr) DIV 2) do begin
   twoDigits := Copy(hHexStr, j, 2); Inc(j, 2);
   PByte(tempPtr)^ := StrToInt('$' + twoDigits); Inc(tempPtr);
 end;{for}
end;

end.


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

UNIT String16.
interface
{$IFNDEF Win32}
  procedure SetLength(var S: string; Len: Integer);
  procedure SetString(var Dst: string; Src: PChar; Len: Integer);
{$ENDIF}
implementation
{$IFNDEF Win32}
  procedure SetLength(var S: string; Len: Integer);
  begin
    if Len > 255 then
      S[0] := Chr(255)
    else
      S[0] := Chr(Len)
  end;

  procedure SetString(var Dst: string; Src: PChar; Len: Integer);
  begin
    if Len > 255 then
      Move(Src^, Dst[1], 255)
    else
      Move(Src^, Dst[1], Len);
    SetLength(Dst, Len);
  end;
{$ENDIF}
end.

=================================================================
4.Binary to decimal
-----------------------------------------------------------------

////////////////////////////////////////////////
// convert 32 bit base2 to 32 bit base10      //
// max number = 99 999 999, return -1 if more //
////////////////////////////////////////////////

function Base10(Base2:Integer) : Integer; assembler;
asm
  cmp    eax,100000000            // check upper limit
  jb     @1                       // ok
  mov    eax,-1                   // error flag
  jmp    @exit                    // exit with -1
@1:
  push   ebx                      // save registers
  push   esi
  xor    esi,esi                  // result = 0


  mov    ebx,10                   // diveder base 10
  mov    ecx,8                    // 8 nibbles (10^8-1)
@2:
  mov    edx,0                    // clear remainder
  div    ebx                      // eax DIV 10, edx mod 10
  add    esi,edx                  // result = result + remainder[I]
  ror    esi,4                    // shift nibble
  loop @2                       // loop for all 8 nibbles
  mov    eax,esi                  // function result
  pop    esi                      // restore registers
  pop    ebx
@exit:
end;


--------------------------------------------------------------------------------

方法. 2
[Oliver Townshend, oliver@zip.com.au]


--------------------------------------------------------------------------------

function IntToBin(Value: LongInt;Size: Integer): String;
var
 i: Integer;
begin
 Result:=';
 for i:=Size downto 0 do begin
    if Value and (1 shl i)<>0 then begin
       Result:=Result+'1';
  end else begin
       Result:=Result+'0';
  end;
 end;
end;

function BinToInt(Value: String): LongInt;
var
 i,Size: Integer;
begin
 Result:=0;
 Size:=Length(Value);
 for i:=Size downto 0 do begin
    if Copy(Value,i,1)='1' then begin
       Result:=Result+(1 shl i);
  end;
 end;
end;


===========================================================================


上一篇:Delphi常見圖象格式轉換技術(二)

下一篇:Delphi常見圖象格式轉換技術

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人国内精品久久久久一区| 国产一区二区日韩精品欧美精品| 日韩av在线免费观看| 懂色aⅴ精品一区二区三区蜜月| 国产91|九色| 欧美性生交xxxxxdddd| 91精品视频免费观看| 日本午夜精品理论片a级appf发布| 欧美性生活大片免费观看网址| 亚州av一区二区| 成人在线精品视频| 伊人一区二区三区久久精品| 黑人与娇小精品av专区| 国产视频综合在线| 日韩亚洲国产中文字幕| 亚洲欧美日韩精品久久奇米色影视| 6080yy精品一区二区三区| 日日骚久久av| 欧美精品999| 国产精品69av| 亚洲精品资源在线| 亚洲精品网站在线播放gif| 欧美视频国产精品| 狠狠色噜噜狠狠狠狠97| 欧美日韩国产999| 国产欧美日韩精品在线观看| 欧美性猛交xxxx免费看| 97在线观看视频| 欧美激情亚洲另类| 性色av一区二区咪爱| 97视频在线观看播放| 91亚洲va在线va天堂va国| 日本精品一区二区三区在线播放视频| 国产精品第1页| 日韩成人av一区| 日韩电影在线观看永久视频免费网站| 欧美激情成人在线视频| 自拍偷拍亚洲欧美| 在线成人免费网站| 久久免费少妇高潮久久精品99| 久久偷看各类女兵18女厕嘘嘘| 久久精品国产电影| 日韩中文字幕在线精品| 日本三级韩国三级久久| 亚洲va电影大全| 亚洲人成网站999久久久综合| 91免费国产网站| 欧美日韩一区二区精品| 亚洲国产精品免费| 欧美在线免费观看| 亚洲欧美国产日韩天堂区| 91视频国产高清| 成人免费网站在线观看| 亚洲男人的天堂网站| 久久免费视频在线| 中文字幕欧美在线| 亚洲美女精品成人在线视频| 精品丝袜一区二区三区| 欧美黑人一区二区三区| 欧美性xxxxxxx| 国产日韩中文字幕| 欧美专区福利在线| 国产免费一区视频观看免费| 精品国产网站地址| 日韩一区二区在线视频| 国产成人精品av在线| 亚洲欧美日韩爽爽影院| 欧美极品在线播放| 久久免费少妇高潮久久精品99| 国产日韩中文字幕| 性色av一区二区三区在线观看| 欧美国产日韩二区| 91在线播放国产| 国产精品电影网站| 国产午夜精品全部视频播放| 精品久久久久久中文字幕| 在线成人中文字幕| 欧美日韩午夜激情| 精品中文字幕乱| 国产亚洲精品久久久久久牛牛| 91精品国产综合久久男男| 91精品国产综合久久香蕉的用户体验| 91精品国产高清自在线看超| 欧美肥老太性生活视频| 亚洲人成自拍网站| 日韩av网址在线| 久久九九国产精品怡红院| 日韩中文字幕在线| 午夜精品一区二区三区在线视| 欧美性猛交视频| 久久久国产视频| www.日韩欧美| 68精品久久久久久欧美| 亚洲男女自偷自拍图片另类| 欧美成人亚洲成人| 日韩在线播放一区| 欧美精品videos性欧美| 久久天天躁狠狠躁夜夜av| 国产mv久久久| 亚洲精品不卡在线| 亚洲色图13p| 欧美成人剧情片在线观看| 97超碰蝌蚪网人人做人人爽| 欧美视频专区一二在线观看| 亚洲美女av在线| 国产精品v日韩精品| 国产成人精品免费视频| 亚洲第一区中文99精品| 亚洲色图50p| 亚洲第一视频在线观看| 国产91色在线免费| 在线观看日韩专区| 亚洲免费福利视频| 久久久久久香蕉网| 97视频在线观看视频免费视频| 国产狼人综合免费视频| 78m国产成人精品视频| 欧美美女操人视频| 久久久久成人网| 91香蕉嫩草神马影院在线观看| 久久久www成人免费精品张筱雨| 国内精品模特av私拍在线观看| 久久的精品视频| 97精品在线观看| 欧美激情一级二级| 亚洲电影天堂av| 91香蕉嫩草神马影院在线观看| 国产精品永久免费在线| 成人免费大片黄在线播放| 国产一区二区在线免费视频| 国产精品都在这里| 中文字幕亚洲欧美一区二区三区| 最近2019年好看中文字幕视频| 久久久久久久久久国产精品| 色综合久综合久久综合久鬼88| 亚洲视频在线看| 国产精品久久久久77777| 日韩欧美国产视频| 日韩欧美在线视频| 亚洲另类图片色| 欧美精品激情在线| 国产精品v片在线观看不卡| 一区二区欧美在线| 欧美日在线观看| 国产精品毛片a∨一区二区三区|国| 精品色蜜蜜精品视频在线观看| 国产一区二区三区四区福利| 亚洲一区二区三区毛片| 国产mv久久久| 欧美综合在线观看| 亚洲福利视频久久| 欧美激情亚洲综合一区| 精品色蜜蜜精品视频在线观看| 最近免费中文字幕视频2019| 欧美激情免费在线| 中文国产亚洲喷潮| 亚洲人成电影网站色…| 欧美福利在线观看| 国产精品亚洲аv天堂网| 欧美老肥婆性猛交视频| 性夜试看影院91社区| 日韩精品小视频| 亚洲xxxx在线| 亚洲人成人99网站|