我得到的一个整数,如i=4,我如何声明一个十六进制的变量,并把值转换成十六进制。第二个问题是,我如何用WriteBinaryData这个方法把参数写入注册表。虚心求教。

解决方案 »

  1.   

    感谢yueing8(yueing)那如何在注册表中写入二进制的如何操作,
      

  2.   

    buf : array[0..1024] of byte
    buf[0]:=xxx
    buf[1]:=xxx
    ...//或者其他方式写入
    my_Reg.WriteBinaryData('Name', @Buf, Sizeof(buf)) 注:本人没有用过,上述是在网上找到的,没有验证。
      

  3.   

    你要自己写,用除模求余法,算法很简单
    不过DEIPHI中有一个现成的函数 应该是HEX()不太清楚了
    前两天用过一个HIGH() 和LOW () 取高四位和低四位,DELPHI中这些你函数很多,只不过我们都不知道,去查查吧
      

  4.   

    这是Indy\IdGlobal.pas里的函数,将整数转换成对应二进制字符串。
    function IntToBin(Value: cardinal): string;
    var
      i: Integer;
    begin
      SetLength(result, 32);
      for i := 1 to 32 do
      begin
        if ((Value shl (i - 1)) shr 31) = 0 then
          result[i] := '0' {do not localize}
        else
          result[i] := '1'; {do not localize}
      end;
    end;
    装了Indy就直接uses IdGlobal;就可以使用这个函数了。
      

  5.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }  end;  Function DecTobin(Value :Integer) : string;//十进制转化二进制
      function mod_num(n1,n2:integer):integer;//取余数
      function reverse(s:String):String;//取反串var
      Form1: TForm1;implementation{$R *.dfm}function mod_num(n1,n2:integer):integer;//取余数
    begin
       result:=n1-n1 div n2*n2
    end;function reverse(s:String):String;//取反串
    Var
    i,num:Integer;
    st:String;
    begin
       num:=Length(s);
       st:='';
       For i:=num DownTo 1 do
       Begin
         st:=st+s[i];
       End;
       Result:=st;
    end;Function DecTobin(Value :Integer) : string;//十进制转化二进制
    Var
      ST:String;
      N:Integer;
    Begin
       ST:='';
       n:=value;
       While n>=2 Do
       Begin
         st:=st+IntToStr(mod_num(n,2));
         n:=n div 2;
       End;
       st:=st+IntToStr(n);
       Result:=reverse(st);
    End;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: integer;
    begin
      s:= 255;
      showmessage(DecTobin(s));
    end;end.