这是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;就可以使用这个函数了。
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.
buf[0]:=xxx
buf[1]:=xxx
...//或者其他方式写入
my_Reg.WriteBinaryData('Name', @Buf, Sizeof(buf)) 注:本人没有用过,上述是在网上找到的,没有验证。
不过DEIPHI中有一个现成的函数 应该是HEX()不太清楚了
前两天用过一个HIGH() 和LOW () 取高四位和低四位,DELPHI中这些你函数很多,只不过我们都不知道,去查查吧
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;就可以使用这个函数了。
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.