**内容:**记录一下临时变量的溢
有的溢出没注意看,就忘记去提防了,往往出现在让你琢磨不透的现象。比如,我下面的情况:
【博客8】小心 “临时变量” 的溢出
疑问:明明用long来存放了,但是还是溢出了是什么原因呢:

答案:是因为a*b是要被放到一个临时变量,然后才转到long的,但是这个临时变量是int类型的,所以出现了临时变量的溢出。

解决方法:
【博客8】小心 “临时变量” 的溢出
这样先将a,b转化为long类型的就不会出现溢出的情况了,前提是你是64位的系统,且在你系统上int是4字节,但是long int是8字节的,如果你是32位的系统,那么你long并没有办法存下这个溢出的值,那么还是会溢出的,这时候怎么解决呢?-------------估计你只能用字符串解决 “大数相乘” 的办法了!

32位vs测试:
【博客8】小心 “临时变量” 的溢出
64位linux测试:
【博客8】小心 “临时变量” 的溢出
【博客8】小心 “临时变量” 的溢出
结果:可以看到32位下,long是放不下的,所以还是会溢出,64位long放得下,所以不会溢出。

大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。

相关文章: