3.5 int a=100,b=100;long int c=a * b;不能工作?

根据C 的内部类型转换规则, 乘法是用int 进行的, 而其结果可能在转换为 long 型并赋给左边的c 之前溢出或被截短。

可以使用明确的类型转换, 强迫乘法 以long 型进行:

long int c = (long int)a * b;

注意, (long int)(a * b) 不能达到需要的效果。

当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题,解决方法也是类似的。

永不止步步 发表于01-13 11:24 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号