超级简单问题 两个long型相乘,如何判断结果是否溢出 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 举例如下dim a as long,b as longif (a/2)*(b/2)>2^32/8 then msgbox "overflow"endif其中2^32/8的计算由来是这样的,long是4字节,所以就是2^32,带上正负号就要除2,在除以4和前面的a/2、b/2相对应。 再补充一句,2^32/8是计算公式,实际在VB中是不能这么写的,否则这个公式就溢出了,你可以实现将long的最大值除以4,然后直接用就行了。当然,我前面的例子里还没有考虑负数的情况,你自己琢磨吧。 关于getPrinter函数获取打印机缺纸状态!!!! 为什么一个简单的跳转程序会占用几乎全部的CPU资源 如何做时间段查询? 谢谢先~1 关于"活动脚本"的讨论. 用get,put语句如何实现修改文件内容???在线等待!!! vb调用excel文件,速度太慢,如何解决,内附程序 在什么地方给MDI的菜单初始化?? 在VB里怎样获得IE版本号 数据库问题 .....msador15.dll,msado15.dll,......的问题 请帮忙看看,水晶报表的奇怪问题? 标准com组件的问题
dim a as long,b as longif (a/2)*(b/2)>2^32/8 then
msgbox "overflow"
endif
其中2^32/8的计算由来是这样的,long是4字节,所以就是2^32,带上正负号就要除2,在除以4和前面的a/2、b/2相对应。
当然,我前面的例子里还没有考虑负数的情况,你自己琢磨吧。