delphi中有直接把10進製轉換成16進製制的函式:
function inttohex(value: integer; digits: integer): string; overload;
function inttohex(value: int64; digits: integer): string; overload;
使用方法為:
procedure tform1.button1click(sender: tobject);
var
i,m: integer;
begin
label1.caption := '';
for i := 1 to length(edit1.text) do
begin
m :=
strtoint(edit1.text[i]));
edit2 := inttohex(strtoint(edit1.text[i]),2)+ '';
edit3 := inttohex(m,2);
end;
end;
然而,delphi中卻沒有把16進製制直接轉換成10進製的函式,將16進製制轉換成10進製需要自己定義函式,這是自己編寫的乙個,不當之處還請指出:
unit unit1;
inte***ce
uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls;
type
tform1 = class(tform)
edit1: tedit;
label1: tlabel;
label2: tlabel;
edit2: tedit;
button1: tbutton;
button2: tbutton;
procedure formcreate(sender: tobject);
procedure button1click(sender: tobject);
procedure button2click(sender: tobject);
private
function hextoint(str:string):word;
public
end;
var form1: tform1;
implementation
procedure tform1.formcreate(sender: tobject);
begin
edit1.clear;
edit2.clear;
end;
procedure tform1.button1click(sender: tobject);
var str : string;
begin
if edit1.text<>'' then
if edit2.text<>'' then
begin
messagebox(handle,'只能輸入乙個數字,請重新輸入','警告',mb_ok);
edit1.clear;
edit2.clear;
endelse
begin
edit2.text:= inttohex(strtoint(edit1.text),4);
endelse
if edit2.text='' then
begin
messagebox(handle,'請輸入數字','警告!',mb_ok);
endelse
begin
str := edit2.text ;
edit1.text := inttostr(hextoint(str));
end;
end;
function tform1.hextoint (str:string) : word;
var i , value : word;
pos : word;
begin
value:=0;
pos:=length(str);
for i:=1 to pos do
begin
case str[i] of
'f','f':
value := value*16+15;
'e','e':
value := value*16+14;
'd','d':
value := value*16+13;
'c','c':
value := value*16+12;
'b','b':
value := value*16+11;
'a','a':
value := value*16+10;
'0'..'9':
value := value*16+ord(str[i])-ord('0');
else
result:=value;
exit;
end;
result:=value;
end;
end;
procedure tform1.button2click(sender: tobject);
begin
close;
end;
end.
十六進製制轉十進位制
create function fn hextobinary hex varchar 8 returns varchar 255 asbegin declare base tinyint declare string varchar 255 declare return varchar 255 de...
十進位制轉十六進製制
問 題 描 述 十 六 進 制 數 是 在 程 序 設 計 時 經 常 要 使 用 到 的 一 種 整 數 的 表 示 方 式 它 有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 共 16 個符號,分別表示十進位制數的 0 15。十六進製制的計數方法是滿16 進 1,所以十進位制數...
十六進製制轉十進位制
問題描述 從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。注 十六進製制數中的10 15分別用大寫的英文本母a b c d e f表示。樣例輸入 ffff 樣例輸出 65535 include include includeint main int len,i,j d...