字符串和&hFFFAFFFA的在转换的时候溢出的问题?

九品仙 2006-08-26 02:29:16
Dim mlr As String
mlr= &HFFFAFFFA [用这个没有问题]
'mlr = "&HFFFAFFFA"[用这个CInt(mlr)'算术运算导致溢出。]
因为现在是字符串加起来合成的新字符串,现在只能得到像"&HFFFAFFFA"这样的值,请问有什么方法可以解决这个溢出的问题?
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
九品仙 2006-08-26
  • 打赏
  • 举报
回复
楼上,对头了,TKS
Knight94 2006-08-26
  • 打赏
  • 举报
回复
Sorry!

知道什么原因了,最近怎么老犯糊涂

是你字符串的问题,前面有个“&H”这两个字符造成

也就是
Dim nValue As Integer
nValue = Convert.ToInt32( "FFFAFFFA", 16 )
hohhoh 2006-08-26
  • 打赏
  • 举报
回复
&HFFFAFFFA : 为有符合32位整数,且数据存储表示为一负数,所以显示 -327686
"&HFFFAFFFA" : 为字符串,调试时显示肯定是 "&HFFFAFFFA"
把她转换成 32位有符合整型 试试,应该为一个 Int32 的数.
手头只有VB6,没.NET,呵呵,见笑了...
九品仙 2006-08-26
  • 打赏
  • 举报
回复
在VB.net2005里面 以前版本的Long 在用到API的时候似乎全部要用Integer代替。
&HFFFAFFFA没有超出Integer的范围。
这个问题只是字符串和字符串内数值的问题。如果是普通的数字那么可以自动转换的,但是&HFFFAFFFA必须用Val函数来提取数字。就是这样
Knight94 2006-08-26
  • 打赏
  • 举报
回复
如果这样,你用long来转换。

&HFFFAFFFA超出了int范围。
九品仙 2006-08-26
  • 打赏
  • 举报
回复
解掉了:用Val函数:以适当类型的数值形式返回包含于字符串内的数字。
九品仙 2006-08-26
  • 打赏
  • 举报
回复
用Convert.ToUInt32(mlr),直接显示“输入字符串的格式不正确。”
查了一下Convert.ToUInt32:存储 32 位(4 字节)无符号整数,值的范围为 0 到 4,294,967,295。这个显然不是我要的,因为我的-327686 是负值。
可能我没说清楚:
&HFFFAFFFA 这个调试的时候自动显示为-327686 已经转变为数值了
"&HFFFAFFFA" 这个调试的时候自动显示为"&HFFFAFFFA" 还是字符串
Knight94 2006-08-26
  • 打赏
  • 举报
回复
使用Convert.ToUInt32这个方法转换成UInt值

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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