十六进制字符串如何转换为十六进制数值

kaixindzl 2008-07-11 01:09:12
Delphi新手请教几个问题:

(1) delphi里面有个函数 IntToHex(d,h),为什么转出来的是十六进制字符串?而不是十六进制的数值呢? 我找了好久,难道十六进制的数只是给人看的? 不必要拿来运算?

(2)十六进制字符串如何转换为十六进制数值?

我为什么要这样子转换呢? 因为我写了一个小程序,里面有这么一句:

ReadprocessMemory(Ph,pointer($0454f821),@A,4,Z);

但是,这是"$0454f821"这个十六进制的内存地址偶尔会变化. 每变一次改一次源代码很不方便.于是,我在程序的界面加了一个 edit 组件,让用户可以通过edit组件输入正确的内存地址(十六进制), 于是,遇到问题了..我怎么把edit里面的十六进制字符串转换成十六进制的数值呢? 头疼一晚上了,希望懂的朋友指点一下.谢谢!

我是菜鸟,高手莫笑我.
另外弱弱的问一句, 如果我直接把十六进制的数转成十进制的数放到上面的pointer()里面..是否也行的通?



...全文
158 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuqianyi1974 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maozefa 的回复:]
任何进制的数都是一种表现形式,其值的大小是不会变的,在计算机内部,也就是几个电位表示的0、1而已。
[/Quote]
不管是十,十六还是二进制,计算机内部都是二进制,我们看到的进制不过是一种表现形式而已
阿发伯 2008-07-11
  • 打赏
  • 举报
回复
是不是用十六进制/十进制/八进制/二进制都可以表示内存地址呢(只要是换算的值相等) ?
===============================================================================
任何进制的数都是一种表现形式,其值的大小是不会变的,在计算机内部,也就是几个电位表示的0、1而已。
kaixindzl 2008-07-11
  • 打赏
  • 举报
回复
谢谢各位的热心解答。我已经弄明白了。。结贴。。新手的钱不太多,但还望笑纳。
kaixindzl 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pathletboy 的回复:]
Pointer(StrToInt(Edit1.Text))
[/Quote]
兄弟的意思就是可以用十进制数表示内存地址啦! 我马上去试试..谢谢.
追问一句: 是不是用十六进制/十进制/八进制/二进制都可以表示内存地址呢(只要是换算的值相等) ?
pathletboy 2008-07-11
  • 打赏
  • 举报
回复
Pointer(StrToInt(Edit1.Text))

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧