線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1333
推到 Plurk!
推到 Facebook!

delphi中的16进制数

答題得分者是:careychen
wq236589
一般會員


發表:21
回覆:37
積分:16
註冊:2008-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-08 12:41:33 IP:123.181.xxx.xxx 訂閱
谁知道delphi里怎么写才能让系统识别“1b6a”是一个16进制的数字而不是字符串。
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-08 13:33:44 IP:218.210.xxx.xxx 訂閱
可以像下面這樣子,不過~~,發言時,請注意一下禮貌

[code delphi]
function IsHex(sHex: String): Boolean;
begin
Result := StrToIntDef('$' sHex, -1) <> -1;
end;
[/code]
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-09-08 13:36:18, 註解 無‧
wq236589
一般會員


發表:21
回覆:37
積分:16
註冊:2008-08-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-09 15:06:32 IP:123.181.xxx.xxx 訂閱
我在用16位数作运算的结果都是10位数 怎么让他保持16位数输出啊
wq236589
一般會員


發表:21
回覆:37
積分:16
註冊:2008-08-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-09 15:45:55 IP:124.237.xxx.xxx 訂閱
还有10进制和16进制数字之间的转换,我是利用代码实现的,有没有更简单的方法?
[code delphi]
sjz:=edit1.Text;
pos:=1;
cd:=length(sjz)-1;
jzz:=0;
while pos <= length(sjz) do
begin
szz:=copy(sjz,pos,1);
if szz='a' then
sz:=10
else if szz='b' then
sz:=11
else if szz='c' then
sz:=12
else if szz='d' then
sz:=13
else if szz='e' then
sz:=14
else if szz='f' then
sz:=15
else
sz:=strtoint(szz);
jzz:=jzz sz*strtoint(floattostr(power(16,cd)));
cd:=cd-1;
pos:=pos 1;
end;
showmessage(inttostr(jzz));

[/code]
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-09 17:35:47 IP:218.210.xxx.xxx 訂閱
我在用16位数作运算的结果都是10位数 怎么让他保持16位数输出啊   ==> IntToHex

还有10进制和16进制数字之间的转换,我是利用代码实现的,有没有更简单的方法?

10 => 16 IntToHex
16 => 10 StrToInt('$' Str)

------
價值的展現,來自於你用哪一個角度來看待它!!
wq236589
一般會員


發表:21
回覆:37
積分:16
註冊:2008-08-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-10 10:26:34 IP:124.237.xxx.xxx 訂閱
首先谢谢楼上这位大大的回答(鼓掌.....啪....啪)
还有补充一下inttohex()有2个参数一个是要变的整数还有一个是最小长度
系統時間:2024-05-05 16:59:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!