zoukankan      html  css  js  c++  java
  • 查看内存数据的函数(ByteToHex和ByteToBin,最终都变成String)

    1. unit Unit1;  
    2.   
    3. interface  
    4.   
    5. uses  
    6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
    7.   Dialogs, StdCtrls;  
    8.   
    9. type  
    10.   TForm1 = class(TForm)  
    11.     Button1: TButton;  
    12.     Button2: TButton;  
    13.     procedure Button1Click(Sender: TObject);  
    14.     procedure Button2Click(Sender: TObject);  
    15.   end;  
    16.   
    17. var  
    18.   Form1: TForm1;  
    19.   
    20. implementation  
    21.   
    22. {$R *.dfm}  
    23.   
    24. {用十六进制查看内存的函数; 参数1是内存起点, 参数2是以字节为单位的长度}  
    25. function ToHex(p: PByteArray; bit: Integer): string;  
    26. var  
    27.   i: Integer;  
    28. begin  
    29.   for i := 0 to bit - 1 do  
    30.     Result := IntToHex(p^[i], 2) + Chr(32) + Result;  
    31.   Result := TrimRight(Result);  
    32. end;  
    33.   
    34. {用二进制查看内存的函数; 参数1是内存起点, 参数2是以字节为单位的长度}  
    35. function ToBin(p: PByteArray; bit: Integer): string;  
    36. const  
    37.   Convert: array['0'..'F'] of string = (  
    38.     '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001',  
    39.     '', '', '', '', '', '', '', '1010', '1011', '1100', '1101', '1110', '1111');  
    40. var  
    41.   i: Integer;  
    42.   s: string;  
    43. begin  
    44.   s := ToHex(p, bit);  
    45.   for i := 1 to Length(s) do  
    46.     if s[i] <> Chr(32) then  
    47.       Result := Result + Convert[s[i]]  
    48.     else  
    49.       Result := Result + Chr(32);  
    50. end;  
    51.   
    52. {测试一}  
    53. procedure TForm1.Button1Click(Sender: TObject);  
    54. var  
    55.   num: Integer;  
    56. begin  
    57.   Randomize;  
    58.   num := Random(MaxInt);  
    59.   ShowMessage(IntToStr(num) + #10#13#10#13 +  
    60.               ToHex(@num, 4) + #10#13#10#13 +  
    61.               ToBin(@num, 4));  
    62. end;  
    63.   
    64. {测试二}  
    65. procedure TForm1.Button2Click(Sender: TObject);  
    66. var  
    67.   str: string;  
    68. begin  
    69.   str := 'Delphi 2010';  
    70.   ShowMessage(str + #10#13#10#13 +  
    71.               ToHex(@str[1], Length(str)*SizeOf(str[1])) + #10#13#10#13 +  
    72.               ToBin(@str[1], Length(str)*SizeOf(str[1])));  
    73. end;  
    74.   
    75. end.  

    http://peirenlei.iteye.com/blog/548322

  • 相关阅读:
    如何编写linux下nand flash驱动-4
    Windows代码heap内存分析实战
    堆内存破坏检测实战--附完整调试过程
    排序算法:冒泡排序
    HDOJ 2802 F(N)
    HDOJ 1715 大菲波数
    HDOJ 1214 圆桌会议
    HDOJ 3466 Proud Merchants
    HDOJ 1215 七夕节
    HDOJ 2073 无限的路
  • 原文地址:https://www.cnblogs.com/findumars/p/5236714.html
Copyright © 2011-2022 走看看