一个关于乘法溢出问题的探讨

幸福的杯心

幸福的杯心

2016-02-19 14:23

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
这是译自VBnet的一篇FAQ,以前我也曾回答过这样的问题,因此公开于此以飨大家.
  问:谁能告诉我一下代码为何产生溢出错误?我已经把结果正确地声明为Long了.
  DimxasLongx=33*1000'产生溢出错误
  ...然而当我直接赋值x=330000时,就正常运行没有错误.
  答:在计算赋给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&)->

展开更多 50%)
分享

猜你喜欢

一个关于乘法溢出问题的探讨

编程语言 网络编程
一个关于乘法溢出问题的探讨

CSS教程:关于文字溢出问题的研究

Web开发
CSS教程:关于文字溢出问题的研究

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

女人一个部位出问题最要命

女人养生
女人一个部位出问题最要命

关于构造单实例类的一个问题

C语言教程 C语言函数
关于构造单实例类的一个问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL怎样处理一个溢出的磁盘

MySQL mysql数据库
MySQL怎样处理一个溢出的磁盘

PHP原版HTML编码器溢出问题的解决

Web开发
PHP原版HTML编码器溢出问题的解决

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

树视TreeView树视的使用技巧

树视TreeView树视的使用技巧

用API函数定义热键又一法

用API函数定义热键又一法
下拉加载更多内容 ↓