进制转换

来源:互联网 发布:网络拓扑主要结构 编辑:程序博客网 时间:2024/04/29 10:31

//二进制字符转十进制
Function binToDec(Value :string) : string;//integer;
VAR
 str : String;
 Int : Integer;
 i : integer;
BEGIN
 Str := UpperCase(Value);
 Int := 0;
 FOR i := 1 TO Length(str) DO
  Int := Int * 2+ ORD(str[i]) - 48;
 Result := IntToStr(Int);
end;

//十进制转二进制 函数一
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.CheckBox2Click(Sender: TObject);
begin
 if checkbox2.Checked then
  self.FormStyle := fsStayOnTop
 else
  self.FormStyle := fsNormal;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
 e11.Text := '';
 e22.Text := '';
 e11.Text := dectobin(strtoint(e1.Text));
 e22.Text := uppercase(format('%x',[strtoint(e1.Text)]));
except
  on EConvertError do showmessage('数值错误');
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
try
 e33.Text := '';
 e55.Text := '';
 e33.Text := bintodec(e3.Text);
 e55.Text := uppercase(format('%x',[strtoint(bintodec(e3.Text))]));
except
  on EConvertError do showmessage('数值错误');
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
try
 e44.Text := '';
 e66.Text := '';
 e44.Text := inttostr(strtoint('$'+e4.Text));
 e66.Text := dectobin(strtoint('$'+e4.Text));
except
  on EConvertError do showmessage('数值错误');
end;
end;

end.