主题:求助:有两条赋值语句是错的,但是我不懂原因!!!请高手指教!!
linlink
[专家分:0] 发布于 2006-10-30 12:44:00
低型数值向高型数值变量赋值:
b!=-2147483648&
d#=-2147483648&
答案是说只要把“&”去掉,以上两条语句就合法了,但是我一直搞不明白为什么???
请高手指点一下!!!谢谢了
回复列表 (共9个回复)
沙发
moz [专家分:37620] 发布于 2006-10-30 13:43:00
&号是长整形数据类型的后缀
长整形值的有效范围是 -2147483648& 到 2147483647&
另外因为QB在检查常数有效范围的时候,没留意前面还有一个负号,
只看到你前面的2147483648,便认为已溢出错误.
板凳
linlink [专家分:0] 发布于 2006-10-30 23:05:00
[em1]
3 楼
diylym [专家分:30] 发布于 2006-11-03 20:01:00
D! 不是单精度吗? 把长整型赋给单精度怎么会益出哪?
4 楼
moz [专家分:37620] 发布于 2006-11-03 20:28:00
是长整形溢出
不是单精度溢出
长整形本身都不合法
怎么赋值?
5 楼
w1212q [专家分:660] 发布于 2006-12-04 11:31:00
在数字后面加一个符号是表示数字是什么类型的;
% 表示 Integer
& 表示 Long
6 楼
def [专家分:3380] 发布于 2006-12-09 19:43:00
可惜。。。
先付给长整形
7 楼
sixth [专家分:0] 发布于 2006-12-15 08:42:00
是不会溢出的。
类型区分符是一 种强制类型形式。只要加上它,它就只能是这种类型了。所以你这么赋值当然会出问题啦。
8 楼
staa [专家分:3690] 发布于 2006-12-20 01:08:00
moz的解释是对的
长整型的最小值是-2147483647&, 题目中的-2147483648&当然会先溢出
如果没有&后缀, 就会以立即数的形式来处理, 反而不会出错
9 楼
lingluo [专家分:30] 发布于 2006-12-24 15:56:00
无聊的题目
我来回复