超级简单问题

ajsword 2003-11-28 04:09:52
两个long型相乘,如何判断结果是否溢出
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlsg 2003-11-28
  • 打赏
  • 举报
回复
最简单的方法,通过错误处理来判断,如果出错的编号符合要求,就溢出了。
AresChen 2003-11-28
  • 打赏
  • 举报
回复
再补充一句,2^32/8是计算公式,实际在VB中是不能这么写的,否则这个公式就溢出了,你可以实现将long的最大值除以4,然后直接用就行了。
当然,我前面的例子里还没有考虑负数的情况,你自己琢磨吧。
AresChen 2003-11-28
  • 打赏
  • 举报
回复
举例如下
dim a as long,b as long

if (a/2)*(b/2)>2^32/8 then
msgbox "overflow"
endif
其中2^32/8的计算由来是这样的,long是4字节,所以就是2^32,带上正负号就要除2,在除以4和前面的a/2、b/2相对应。

7,789

社区成员

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

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