回 帖 发 新 帖 刷新版面

主题:求助:有两条赋值语句是错的,但是我不懂原因!!!请高手指教!!

低型数值向高型数值变量赋值:
   
      b!=-2147483648&
      d#=-2147483648&

答案是说只要把“&”去掉,以上两条语句就合法了,但是我一直搞不明白为什么???
请高手指点一下!!!谢谢了

回复列表 (共9个回复)

沙发

&号是长整形数据类型的后缀
长整形值的有效范围是 -2147483648& 到 2147483647&
另外因为QB在检查常数有效范围的时候,没留意前面还有一个负号,
只看到你前面的2147483648,便认为已溢出错误.

板凳


[em1]

3 楼

D! 不是单精度吗? 把长整型赋给单精度怎么会益出哪?

4 楼

是长整形溢出
不是单精度溢出
长整形本身都不合法
怎么赋值?

5 楼


在数字后面加一个符号是表示数字是什么类型的;
%  表示  Integer
&  表示  Long

6 楼

可惜。。。
先付给长整形

7 楼

是不会溢出的。
类型区分符是一 种强制类型形式。只要加上它,它就只能是这种类型了。所以你这么赋值当然会出问题啦。

8 楼

moz的解释是对的

长整型的最小值是-2147483647&, 题目中的-2147483648&当然会先溢出

如果没有&后缀, 就会以立即数的形式来处理, 反而不会出错

9 楼

无聊的题目

我来回复

您尚未登录,请登录后再回复。点此登录或注册