社区
C语言
帖子详情
int a = 100, b = 100; long int c = a*b; 请教
lostyue
2011-07-01 04:28:23
rt c语言什么400问上面的,为啥这个不行?书上说赋值之前会溢出或者被截短,这个怎么讲?
菜鸟请教 谢谢了
...全文
333
21
打赏
收藏
int a = 100, b = 100; long int c = a*b; 请教
rt c语言什么400问上面的,为啥这个不行?书上说赋值之前会溢出或者被截短,这个怎么讲? 菜鸟请教 谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lostyue
2011-07-01
打赏
举报
回复
结贴 给分~ 谢谢大家
lostyue
2011-07-01
打赏
举报
回复
[Quote=引用 18 楼 zjs100901 的回复:]
int a = 100, b = 100; long int c = a*b
a*b这个表达式还是int型的。
如果其值大于int可表示的数,而小于long int可表示的数,long int c = 1L*a*b;这样总可以吧。
[/Quote]
谢谢 ~
lostyue
2011-07-01
打赏
举报
回复
[Quote=引用 15 楼 luciferisnotsatan 的回复:]
可能书比较旧,int是2位,long int 是4位,而且a,b里至少有一个是1000。1000*100超出了int最大范围,int*int也不会提升类型,那就会截断了。
[/Quote]
好吧.. 3q 懂了..
zjs100901
2011-07-01
打赏
举报
回复
int a = 100, b = 100; long int c = a*b
a*b这个表达式还是int型的。
如果其值大于int可表示的数,而小于long int可表示的数,long int c = 1L*a*b;这样总可以吧。
至善者善之敌
2011-07-01
打赏
举报
回复
[Quote=引用 12 楼 lostyue 的回复:]
long long 是8个字节, Int 是4个字节
int a = 100, b = 100;
long long c = a*b;
这个就会出现溢出或者截短的问题么?
可以给解释下么?这个溢出 截短怎么讲?
[/Quote]
这个不会有什么问题,好比小桶装往大桶里倒水,那水是不会溢出的,反之则会溢出或截断
luciferisnotsatan
2011-07-01
打赏
举报
回复
[Quote=引用 15 楼 luciferisnotsatan 的回复:]
可能书比较旧,int是2位,long int 是4位,而且a,b里至少有一个是1000。1000*100超出了int最大范围,int*int也不会提升类型,那就会截断了。
[/Quote]
打错了
int是2字节,long int 是4字节
luciferisnotsatan
2011-07-01
打赏
举报
回复
可能书比较旧,int是2位,long int 是4位,而且a,b里至少有一个是1000。1000*100超出了int最大范围,int*int也不会提升类型,那就会截断了。
hackbuteer1
2011-07-01
打赏
举报
回复
不会出现截断、溢出的问题的。。
terhack
2011-07-01
打赏
举报
回复
截断意思就是内存位数太小。。分配的内存表示不了那么大数
比如8位的最大表示2的8次方,那你弄个2的9次方往里存储必然存储不了
lostyue
2011-07-01
打赏
举报
回复
long long 是8个字节, Int 是4个字节
int a = 100, b = 100;
long long c = a*b;
这个就会出现溢出或者截短的问题么?
可以给解释下么?这个溢出 截短怎么讲?
ryfdizuo
2011-07-01
打赏
举报
回复
char short int double 这些类型转 可能会出问题。
int和long int不会。
lostyue
2011-07-01
打赏
举报
回复
[Quote=引用 7 楼 dizuo 的回复:]
int和long int都是4位。
[/Quote]
int a = 100, b = 100;
那如果 是 long long c = a *b就会出现了?
ryfdizuo
2011-07-01
打赏
举报
回复
[Quote=引用 7 楼 dizuo 的回复:]
int和long int都是4位。
[/Quote]晕死,四个字节。。。
lostyue
2011-07-01
打赏
举报
回复
问题:
int a = 100, b = 100;
long int c = a * b;
这样如果不用强制转换,这个赋值语句会有问题,出现问题的原因是 在复制时会出现溢出或被截短,我不太明白这个溢出 或 截短,long int如果是8位,int四位怎么会有问题?
ryfdizuo
2011-07-01
打赏
举报
回复
int和long int都是4位。
terhack
2011-07-01
打赏
举报
回复
你的数据完全没问题
long ,int 都是4个字节,不用担心什么截断
hackbuteer1
2011-07-01
打赏
举报
回复
什么问题?
就想叫yoko
2011-07-01
打赏
举报
回复
int转long int 不会溢出 也不会发生截断
反过来就有可能发生
bdmh
2011-07-01
打赏
举报
回复
啥意思,截断常发生在数据类型转换时,比如double转int之类的
恨天低
2011-07-01
打赏
举报
回复
说清楚你的问题!?
加载更多回复(1)
String转
int
本套视频详细讲解了String如何转换成
int
,这在开发实践中会频繁遇到。
int
类型需要从文本框录入,如学生身高,服务器接收到的是String类型,使用时需要转换成
int
类型。 类型转换时需要使用到包装类的方法,8种基本...
c语言程序每句什么意思,新人
请教
C语言的每句意思。
该楼层疑似违规已被系统折叠隐藏此楼查看此楼1:#include
long
fac(
int
n);
int
judge(
int
n);main(){
int
n;for(n=100;n<=999;n++){if(judge(n))pr
int
f("此数为%d\n",n);}}
long
fac(
int
n){
int
sum=1,i;for (i=1;i...
关于递归的一个问题*
int
a = 0; char b[] = "123456"; char c[] = { 0 }; for (a = 1; a < 3; a++) { pr
int
f("请输入密码:>"); scanf("%s",c); if (strcmp(b, c)==0) { pr
int
f("登录成功\n"); break; } ...
C语言Warning:assignment to ‘
int
‘ from ‘
int
*‘ makes
int
eger from po
int
er without a cast引发的思考
由Warning:assignment to '
int
' from '
int
*' makes
int
eger from po
int
er without a cast引发的关于C语言指针的思考,阐述了该警告产生的原因与解决办法,并进一步引出“野指针”问题
为什么System.out.pr
int
ln(a++) 输出的结果没有自增
为什么
int
a=10; System.out.pr
int
ln(a++);这段代码输出的结果是10
long
a = 2147483648;为什么报错 double a= 10/3为什么等于3.0,而 double a= 10.0/3 却等于 3.3333 呵,这不是简单的不能再简单问题吗。很快...
C语言
69,379
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章