正文

进制转换2005-07-28 22:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wegang/3293.html

分享到:

1、
Convert a number to hexadecimal

hexadecimal
[of_long2hex(long alnumber, integer ai_digit) returns a string]

long ll_temp0, ll_temp1
char lc_ret

IF ai_digit > 0 THEN
ll_temp0 = abs(al_number / (16 ^ (ai_digit - 1)))
ll_temp1 = ll_temp0 * (16 ^ (ai_digit - 1))
IF ll_temp0 > 9 THEN
lc_ret = char(ll_temp0 + 55)
ELSE
lc_ret = char(ll_temp0 + 48)
END IF
RETURN lc_ret + &
of_num2hex(al_number - ll_temp1 , ai_digit - 1)
END IF
RETURN ""

// of_longhex(256, 4) returns "0100"
// of_longhex(256, 3) returns "100"


2、
Convert an hex string to its decimal equivalent

[of_hex2long(as_hex) returns a long]
string ls_hex
integer i,length
long result = 0

length = len(as_hex)
ls_hex = Upper(as_hex)
FOR i = 1 to length
result += &
(Pos ('123456789ABCDEF', mid(ls_hex, i, 1)) * &
( 16 ^ ( length - i ) ))
NEXT
RETURN result

阅读(3350) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册