怎样让变量的数据不自动转换成10进制?

铱星人 2009-01-08 06:30:33
我现在有个问题,我在做一个大于8byte 的数据变量累加,把结果转换成16进制显示的时候,用HEX是不行的,因为HEX最多8byte,问题是计算机本来就是HEX运算的,
何必让VB把它自动转换成10进制,然后我再转换成16进制,是不是多此一举呢?有没有办法直接把变量的 16进制数据直接提出来显示?
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
铱星人 2009-01-08
  • 打赏
  • 举报
回复
我刚才看了一下MSDN
Hex 函数

返回代表十六进制数值的 String。
原来是返回的字符串,原来如此,我都当作数据了,
实际上不管你什么进制的只是显示方便的问题。
实际上电脑都是用2进制运算的。
铱星人 2009-01-08
  • 打赏
  • 举报
回复
回楼上,我说的不是 字符串变成数字运算,我说的是 从BIN文档中通过二进制方法读出来的,已经在运算了,所以不存在字符ASCII的问题,我要的是最后的结果能直接变成ASCII字符串显示就好了,但是目前的方法是首先要把十进制变成16进制,然后再变成字符串运算,因为在内存中是2进制的,每4个BIT就是一个HEX的位,我们在写汇编的时候一般都是按照16进制运算的,反而要变成10进制要通过函数转换,所以我们应该可以直接把变量里边的二进制数读出来,比如一个BYTE最大就是255,也就是FF,但是VB显示给我们都是255,而不是2进制或者16进制,说明已经给了转换。我就是想不要这种自动转换。 直接读出数值转换成字符就快速多了。
of123 2009-01-08
  • 打赏
  • 举报
回复

呵呵,有一个这样想问题的人。

你以为你的数字变量里就是一些十六进制的字符串吗?内存变量是 2 进制的,就是一连串的 0 和 1。严格地说,数字计算机进行的是 2 进制计算。
而且,变量中的数,也没有你想的那么简单。不同的数据类型,有不同的编码格式,每一位是的 0 和 1 都有具体的定义。

当然,写系统的人没有那么傻,直接把 2 进制数换成字符 "0" 和 "1" (实际编码是 &H30 和 &H31)给你看,还是进行了转换,变成了大家最习惯的 10 进制字符串。再用字库编码显示出来给你看。

10 进制数转 16 进制字符串,网上的函数一抓一大把。搜搜!


7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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