一个关于乘法溢出问题的探讨
2006-04-17 23:12
477 查看
答:在计算赋给X的值时,VB会使用一个临时变量.在此过程中,它使用的是一个与表达式中数据类型相同的临时变量.在上面的例子中,由于相乘的两个数都为整型(Integer),VB将使用一个整型的临时变量.当乘积超过32K(整型的极限)时,就会产生溢出错误.修正的方法是给表达式中的某个值指定一个类型标识符,强制VB使用一个足以容纳计算结果的临时变量.如:
x=33*1000&
尽管1000不是Long型数,但VB将使用一个Long型临时变量来保存结果.然而,还要注意这段代码:
x=33*1000*100&
由于VB试图将表达式前一部分的积赋给一整型临时变量,将仍然会发生溢出错误,尽管在表达式中已经声明了一个Long型数.修正的方法是把最大的数声明为Long 或者是把VB将计算为Long型的数用括号括起来:
x=33*1000&*100
x=33*(1000*100&)
摘自VB中国
x=33*1000&
尽管1000不是Long型数,但VB将使用一个Long型临时变量来保存结果.然而,还要注意这段代码:
x=33*1000*100&
由于VB试图将表达式前一部分的积赋给一整型临时变量,将仍然会发生溢出错误,尽管在表达式中已经声明了一个Long型数.修正的方法是把最大的数声明为Long 或者是把VB将计算为Long型的数用括号括起来:
x=33*1000&*100
x=33*(1000*100&)
摘自VB中国
相关文章推荐
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于栈内存溢出的一个问题
- 关于《编程珠玑》中一个找出一个不存在的数的问题的探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于3n+1问题的更加方便的解答(防止乘法的溢出)
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于多个布局文件中的view共用一个id的问题的探讨
- 关于一个CS项目,jvm内存溢出问题的解决方案
- 探讨一个关于“继承”的问题
- 关于一个数据类型的溢出问题
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨
- 关于一个int *ptr=(int *)(&a+1)问题的探讨