Private Sub Command1_Click()
Dim a
a = 256 * 256
End Sub上面代码运行老是提示溢出错误,为什么啊?
麻烦知道朋友解答一下啊。
上面运算a=65536,才65536怎么老是提示溢出啊,
就是a=90000这样都没有错误啊,为什么两个数相乘就会提示溢出啊?
Dim a
a = 256 * 256
End Sub上面代码运行老是提示溢出错误,为什么啊?
麻烦知道朋友解答一下啊。
上面运算a=65536,才65536怎么老是提示溢出啊,
就是a=90000这样都没有错误啊,为什么两个数相乘就会提示溢出啊?
解决方案 »
- vbScprit如何调用C++的dll,求高手帮忙
- 修改OCX 识别码?
- 求用VB读取主板的ID,或网卡MAC,或硬盘。
- 本人扩充的农历算法,支持 1900-2090。欢迎多提意见
- &的作用
- 求救:如果清除表中重复记录-------------------在线等待
- 关于游戏的一个基础算法
- 关于RichTextbox打开文本,进行编辑的问题,高手一定要进来呀,急!!!!!!!!!!!!!!!!!!!!!111
- 选择了Shockwave flash控件可是在那里加入~~~~~~~~~flash动化呢~?另外
- vbscript中怎样初始化一个2维数组 急
- 话说,猩猩与技术关系不大,与勤奋有关…
- 在龙空上面的技术帖被人围攻加车轮大战了, 1vsN那种, 愿爱因斯坦赐予我力量吧, 我是老蔡!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我试过了,两个数的乘积<32767就不会溢出,大于就会溢出。为什么呢?我都定义
Double 或long 都不行的。
我试过了,两个数的乘积<32767就不会溢出,大于就会溢出。为什么呢?我都定义
Double 或long 都不行的。
Dim a As Long
a = 256& * 256
End Sub
Private Sub Command1_Click()
Dim a As Long
Dim b As Long
b = 256
a = b * 256
End Sub
Private Sub Command1_Click()
Dim a as long
a = 256& * 256
End Sub
第一个256后面的&,表示这个256是Long类型的数据
Dim a
a = 256# * 256
MsgBox "A的长度是: " & LenB(a) & ", A的值是: " & a个人的理解是这样的:
a是一个变体,
解释器在解释到 Dim a 这一行的时候,并不知道你会为它赋什么类型的右值
到了下一行,它看到右侧的表达式是一个 integer * integer,
于是分配2个字节的内存。
而65536,八进制表示为:200000
至少需要6个字节,产生溢出错误!
Call func(256 * 256)
End Sub
Private Function func(ByVal v As Double)End Function
尽管函数func中参数v是double,却还是溢出。
那么个人推断,产生溢出的地方,其实是在解释器内部!
它为保存integer * integer 乘法计算结果分配的内存不够。网友可能知道,
operator * 其实是一个函数。
C++中函数声明如果是:
int operator * ( int & val1, int & val2);
正好吻合这里的溢出错误!