语言中的溢出
发布日期:2021-06-30 19:59:18
浏览次数:4
分类:技术文章
本文共 1236 字,大约阅读时间需要 4 分钟。
语言中的溢出分为缓冲区溢出,内存溢出和数据溢出。最常见的就是数据溢出,当要表示的数据超出计算机所使用的数据类型所能够表示d的范围时,就会产生数据的溢出
假如有一个需求:计算从0到10,0到100,0到1000,0到10000,0到100000的和
using System;class Program{ static void Main(string[] args) { int sum = 0; for (int i = 0; i <= 10; i++) { sum += i; } Console.WriteLine(sum); sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } Console.WriteLine(sum); sum = 0; for (int i = 0; i <= 1000; i++) { sum += i; } Console.WriteLine(sum); sum = 0; for (int i = 0; i <= 10000; i++) { sum += i; } Console.WriteLine(sum); sum = 0; for (int i = 0; i <= 100000; i++) { sum += i; } Console.WriteLine(sum); }}
运行后的输出结果:
不难看出结果是有规律性的,但是当计算从0到10000的和时,结果却很奇怪,这就是语言中的溢出现象,因为我们定义的sum是int型,C#中int型能表示的数值范围如下: 可见5000050000超过了int类型可表示的范围,所以产生了溢出现象导致数字错乱 如果把sum变量的类型改为比int类型能表示的数字范围大的类型,则不会溢出,例如double类型using System;class Program{ static void Main(string[] args) { double sum = 0; for (int i = 0; i <= 100000; i++) { sum += i; } Console.WriteLine(sum); //5000050000 }}
转载地址:https://liuhaowen.blog.csdn.net/article/details/89857543 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月29日 21时52分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MyBatisPlus简单入门(SpringBoot)
2019-04-30
攻防世界web进阶区NewsCenter详解
2019-04-30
攻防世界web进阶PHP2详解
2019-04-30
如何解决词达人问题(新)
2019-04-30
攻防世界web进阶区easytornado详解
2019-04-30
攻防世界web进阶区web2详解
2019-04-30
xss-labs详解(上)1-10
2019-04-30
xss-labs详解(下)11-20
2019-04-30
攻防世界web进阶区ics-05详解
2019-04-30
攻防世界web进阶区FlatScience详解
2019-04-30
攻防世界web进阶区ics-04详解
2019-04-30
攻防世界web进阶区Cat详解
2019-04-30
攻防世界web进阶区bug详解
2019-04-30
攻防世界web进阶区ics-07详解
2019-04-30
攻防世界web进阶区unfinish详解
2019-04-30
攻防世界web进阶区i-got-id-200超详解
2019-04-30
sql注入总结学习
2019-04-30
leetcode46 全排列
2019-04-30
leetcode121 买卖股票的最佳时机
2019-04-30
leetcode 122 买卖股票的最佳时机II
2019-04-30