先晒个图吧。。

下面是程序代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
StaticText1: TStaticText; //这组件跟标签label效果差不多
StaticText2: TStaticText;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
function BitToInt(str:string):Integer; //2进制转10进制函数声明
function HextoBinary(Hexstr:string):string; //16进制转2进制函数声明
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function tform1.BitToInt(str:string):Integer; //2进制转10进制
var
i,size:Integer;
begin
Result:=0;
size:=Length(str);
for i:=size downto 1 do
begin
if Copy(str,i,1)='1' then
Result:=Result+(1 shl (size-i));
end;
end;
function tform1.HextoBinary(Hexstr:string):string; //16进制转2进制
const
BOX: array [0..15] of string = //16进制的每1位数都对应一个4位的2进制数
('0000','0001','0010','0011',
'0100','0101','0110','0111',
'1000','1001','1010','1011',
'1100','1101','1110','1111');
var
i:integer;
begin
for i:=Length(Hexstr) downto 1 do
Result:=BOX[StrToInt('$'+Hexstr[i])]+Result;
end;
procedure TForm1.Button1Click(Sender: TObject); //2进制转10进制再转16进制
var
a:Integer;
begin
a:=BittoInt(Edit1.Text); //先用2进制将(Edit1.Text)转换成10进制
Edit2.Text:=IntToHex(a,1); //再用delphi自带的10进制转16进制函数(IntToHex)
end;
procedure TForm1.Button2Click(Sender: TObject); //调用BitToInt
begin
Edit1.Text:=HextoBinary(Edit2.Text);
end;
end.
浙公网安备 33010602011771号