尊龙凯时

Overflow是什么?数字太大时计算机会出错,一文讲清

主题内容提要

Overflow是什么?数字太大时计算机会出错,一文讲清吃透一些可迁移概念后,看科技新闻更有数,不那么容易被神话带着跑。热点事件解读会标明哪些较确定、哪些仍在研究,表述相对克制。推送可按兴趣关停,不会一大早就被震惊体吵醒。有种被好好对待的感觉,而不是被算法拽着满世界乱跑。先记一笔真实感受:稳、清、诚实,就这三点够用。

Overflow是什么?数字太大时计算机会出错,一文讲清

Overflow是什么???????数字太大时推算机遇犯错,,,,, ,一文讲清

一句话说明显:Overflow就是数据超过了推算机能存放的最大值,,,,, ,了局要么造成负数,,,,, ,要么归零,,,,, ,要么直接崩掉。。。。。。。这景象跟你的手机推算器、银行账户余额、甚至游戏里的金币数都有关系。。。。。。。合用天堑:它只呈此刻数字运算和内存分配里,,,,, ,跟病毒、硬件败坏无关。。。。。。。下面先讲明显它到底是什么,,,,, ,再拆道理,,,,, ,最后回覆你最可能问的五个问题。。。。。。。


一、主题概想:Overflow到底是个什么鬼

Overflow,,,,, ,中文接装溢出”。。。。。。。不是水管漏水那种,,,,, ,而是推算机里数字的“容器”太幼了。。。。。。。推算机用二进造位(bit)来存数字,,,,, ,好比8位能存0到255,,,,, ,16位能存0到65535。。。。。。。若是你硬往一个8位容器里塞256,,,,, ,它装不下,,,,, ,就会产生Overflow。。。。。。。

Overflow不是什么。。。。。。。它不是病毒,,,,, ,不是硬件烧了,,,,, ,也不是网速慢。。。。。。。它是软件设计时定下的“容量天花板”,,,,, ,法式员没思考周全,,,,, ,或者说话自身没做;;;;;;; ;ぃ,,,, ,就会让数据“溢”出去。。。。。。。举个例子:你往一个只能装10升水的桶里倒11升,,,,, ,水会漫出来,,,,, ,桶里剩下的不是10升,,,,, ,而是1升(由于桶容量是10,,,,, ,但现实装了11,,,,, ,溢出后桶里只保留最后10升???????不合,,,,, ,这里必要更精确的类比)。。。。。。。

Overflow是什么???????数字太大时推算机遇犯错,,,,,,一文讲清

现实上,,,,, ,推算机里的Overflow有两种常见阐发:整数溢出缓冲区溢出。。。。。。。前者是数值超限,,,,, ,后者是内存区域超限。。。。。。。本文沉点讲整数溢出,,,,, ,由于和日常生涯联系更直接。。。。。。。


二、道理:为什么会有Overflow???????一个贯通到底的类比

设想你有一个老式里程表,,,,, ,只有四位数字,,,,, ,最大显示9999公里。。。。。。。你开车从0起头,,,,, ,开到9999公里后,,,,, ,再开1公里,,,,, ,里程表会造成0000。。。。。。。这就是Overflow——它没佑装10000」剽个地位,,,,, ,只能回绕。。。。。。。推算机里的无符号整数(unsigned int)就是这样的:32位无符号整数最大值是2^32-1,,,,, ,即4294967295,,,,, ,加1之后造成0。。。。。。。

另一种情况:有符号整数(signed int)用第一位暗示正负。。。。。。。好比32位有符号整数,,,,, ,最大值是2^31-1,,,,, ,即2147483647。。。。。。。再加1,,,,, ,了局造成了-2147483648。。。。。。。这就是“正溢出变负”,,,,, ,像你借钱还不起,,,,, ,倒欠银行一样。。。。。。。

贯通类比:储水池与水位标尺

把推算机里的整数变量设想成一个储水池,,,,, ,池壁上有刻度,,,,, ,最高刻度是池子的容量。。。。。。。当你往池子里注水,,,,, ,水位随着上升。。。。。。。一旦水超过最高刻度,,,,, ,水就会漫过池壁,,,,, ,但池子自身不会变大。。。。。。。推算机的做法是:要么把池子里的水全数倒掉,,,,, ,沉新从0起头(回绕),,,,, ,要么把水倒到另一个池子(但另一个池子也可能满),,,,, ,或者索性报错。。。。。。。具体是哪种,,,,, ,取决于编程说话和编译器。。。。。。。

更切近日常的例子:你手机上的推算器,,,,, ,输入999999999999(12个9)再按+1,,,,, ,好多手机遇显示1.0e+12,,,,, ,那是科学记数法,,,,, ,不是Overflow。。。。。。。但若是你用某个老式的推算器利用,,,,, ,它可能直接显示谬误或造成负数。。。。。。。这就是整数溢出在起作用。。。。。。。

为什么会有这个设计???????由于推算机的存储空间是有限的,,,,, ,用固定位数存数字,,,,, ,效能高、速度快。。。。。。。若是允许无限大的数字,,,,, ,就要用动态内存分配,,,,, ,速度会慢好多。。。。。。。所以所有编程说话都面对这个衡量:要速度,,,,, ,就要接受容量上限;;;;;;; ;要精准,,,,, ,就得就义速度。。。。。。。Overflow不是bug,,,,, ,是设计约束。。。。。。。


三、落到人:通常人怎么观察、怎么判断、要不要扭转日常

怎么观察???????最容易看到的处所是游戏。。。。。。。好比《文化》系列里,,,,, ,甘地的好战指数已经由于溢出造成极低,,,,, ,反而导致和平偏差。。。。。。。更经典的例子:在《星际争霸》里,,,,, ,虫族人丁上限255,,,,, ,若是超过就会回绕到0,,,,, ,导致单元无法出产。。。。。。。你玩某款手游,,,,, ,金币忽然造成负数,,,,, ,多半是Overflow。。。。。。。

另一个日常场景:银行转账系统。。。。。。。若是某幼我账户余额刚好是整数上限,,,,, ,存入1分钱,,,,, ,系统可能显示负数。。。。。。。但现实中银行系统用了高精度库(好比BigDecimal),,,,, ,不会产生这种情况。。。。。。。不外汗青上的确有过因Overflow导致的金融变乱,,,,, ,好比1996年欧洲阿丽亚娜5型火箭爆炸,,,,, ,就是由于一个64位浮点数转16位整数时产生了Overflow。。。。。。。

要不要扭转日常???????对于通常用户,,,,, ,根基不必要。。。。。。。你只有知路:若是某个软件忽然出现莫名其妙的数字异常(好比负数、0、离谱的大数),,,,, ,可能是Overflow,,,,, ,而不是你手机坏了。。。。。。。沉启软件或更新版本通常能解决。。。。。。。对于法式员,,,,, ,这是必建课:写代码时查抄输入领域、使用安全库(好比Python的整数自动扩大,,,,, ,但C/C++就不能)。。。。。。。

一个“关切的人”能够做什么???????若是你对数字敏感,,,,, ,能够用推算器尝试:在Windows推算器(法式员模式)下,,,,, ,输入一个32位有符号整数最大值2147483647,,,,, ,加1,,,,, ,看了局造成负数。。。。。。。这就是活生生的Overflow演示。。。。。。。


四、高频疑难(至少4个)

1. Overflow缓和冲区溢出是一回事吗???????

不是。。。。。。。整数Overflow是数值大幼超限,,,,, ,缓冲区Overflow是内存区域写超限(好比往一个只能存10个字符的数组里写20个字符)。。。。。。。两者都是溢出,,,,, ,但一个是数字,,,,, ,一个是内存空间。。。。。。;;;;;;; ;撼迩绯龈O眨,,,, ,常被黑客利用来执行恶意代码,,,,, ,而整数溢出更多导致推算谬误。。。。。。。

2. 所罕见字类型城市Overflow吗???????

理论上城市,,,,, ,但现实处置方式分歧。。。。。。。固定大幼的整数(如int、short)肯定会有上限。。。。。。。浮点数(float、double)也有上限,,,,, ,但溢出后会造成“无限大”(Infinity)或“NaN”(Not a Number),,,,, ,而不是回绕。。。。。。。有些说话如Python,,,,, ,整数是肆意精度的,,,,, ,只有你内存够,,,,, ,它不会Overflow,,,,, ,但会变慢。。。。。。。Java、C/C++、Rust蹬罪言则严格遵循固定位数,,,,, ,Overflow是确定的。。。。。。。

3. 为什么有时Overflow会造成负数,,,,, ,有时造成0???????

取决于数据类型是有符号还是无符号。。。。。。。无符号整数(unsigned int)只有正数,,,,, ,溢出后回绕到最幼值(0)。。。。。。。有符号整数(signed int)用补码暗示,,,,, ,溢出后最高位变动,,,,, ,导致正负翻转。。。。。。。好比32位有符号整数最大值+1,,,,, ,了局造成最幼值(负数)。。。。。。。具体数值由二进造补码运算决定,,,,, ,并非随机。。。。。。。

4. 若何预防Overflow???????

法式员有三种常见做法。。。。。。。第一,,,,, ,使用更大的数据类型(好比从int换成long long),,,,, ,但治标不治本。。。。。。。第二,,,,, ,在运算前查抄数值是否靠近上限,,,,, ,若是靠近就报错或换用高精度库。。。。。。。第三,,,,, ,使用说话提供的安全运算函数,,,,, ,好比C++的checked_add,,,,, ,或者直接使用Python/Ruby等自动扩大的说话。。。。。。。通常用户无法预防,,,,, ,但能够注意软件更新,,,,, ,开发者通;;;;;;; ;嵩谛掳姹局薪ǜ匆阎绯鑫侍狻。。。。。。

5. Overflow会造成数据永约失吗???????

不愿定。。。。。。。若是只是推算了局溢出,,,,, ,原始数据还在内存里,,,,, ,但推算过程产生了谬误了局。。。。。。。若是溢启程生在存储过程中(好比向数据库写一个超限整数),,,,, ,数据库可能报错或自动截断,,,,, ,甚至导致事务回滚。。。。。。。数据迷失与否取决于法式若何处置溢出。。。。。。。大无数成熟系统会捕获异常,,,,, ,不会让数据无声迷失。。。。。。。


五、误区与限度:科学目前走到哪,,,,, ,哪是设想

常见误区:好多人以为Overflow是推算机“算错了”或者“硬件坏了”。。。。。。。现实上,,,,, ,它严格遵循二进造规定,,,,, ,推算没错,,,,, ,只是你给的数字超过了设计领域。。。。。。。就像你让一个只能数到10的计数器数11,,,,, ,它不会说谎,,,,, ,只会通知你“我不知路11”。。。。。。。

另一个误区:以为Overflow只有坏处。。。。。。。其实,,,,, ,好多密码学算法和随机数天生器专门利用回绕个性来达到机能。。。。。。。好比,,,,, ,一些哈希函数就是用整数加法和乘法后的回绕来造作不成预测性。。。。。。。Overflow自身是中性的,,,,, ,看你怎么用。。。。。。。

科学限度:目前,,,,, ,所罕见字推算机(基于冯·诺依曼架构)都存在Overflow问题,,,,, ,由于存储空间有限。。。。。。。量子推算机的出现可能扭转这一点——量子比特能够同时暗示0和1的叠加态,,,,, ,但量子推算处置的是概率幅,,,,, ,数值领域性质上也是有限的,,,,, ,只是表白方式分歧。。。。。。。不外,,,,, ,量子推算机的“溢出”概想目前还在理论阶段,,,,, ,没有现实利用。。。。。。。所以,,,,, ,至少在可预感的将来,,,,, ,Overflow仍会陪伴着我们。。。。。。。

争议:有人以为应该齐全不容固定位数整数,,,,, ,改用肆意精度,,,,, ,就像Python一样。。。。。。。但否决者指出,,,,, ,这会导致机能降落,,,,, ,且在某些实时系统(如汽车刹车、航天器节造)中,,,,, ,确定性比安全性更沉要,,,,, ,固定位数反而更靠得住。。。。。。。审慎判断:对于大无数通常利用,,,,, ,使用安全说话(如Rust、Java)的自动溢出检测即可;;;;;;; ;对于极端机能场景,,,,, ,必要法式员手动治理。。。。。。。

Overflow是什么???????数字太大时推算机遇犯错,,,,,,一文讲清

六、结尾:幼我判断 + 一句可转述总结

我幼我感触,,,,, ,Overflow是推算机世界里最“反直觉”但又最“合乎逻辑”的陷阱之一。。。。。。。它提醒我们:数字不是无限的,,,,, ,容器总有天堑。。。。。。。相识它,,,,, ,不是为了焦虑,,,,, ,而是为了在遇到奇怪数字时能淡定地说一句“哦,,,,, ,这是溢出”。。。。。。。

一句可转述总结:Overflow就是数字太大,,,,, ,容器装不下,,,,, ,推算机遇用回绕或报错来通知你——别让它成为你法式里的隐形炸弹。。。。。。。


(全文约2400字,,,,, ,但愿助你把Overflow这件事聊透了。。。。。。。)

?作者: 赵建平撰 · 更新于 2026-09-08 00:32:10

【观察】让二追三,,,,, ,国米疯狂到底!

靠着一股疯狂的劲头,,,,, ,你能够做到好多事件。。。。。。。好比:克服火热的气象,,,,, ,战胜难搞的敌手,,,,, ,破除强强对话魔咒,,,,, ,将争议判罚甩在身后。。。。。。。梅阿查球场9月的第一场角逐,,,,, ,见证了“疯狂国米”的再现——即便这支球队已经赢得了好多荣誉,,,,, ,疯狂依然是它的底色。。。。。。。面对那不勒斯,,,,, ,国米鄙人半场一度连丢两球,,,,, ,随后却演出“让二追三”的好戏,,,,, ,此前令人忧郁的锋线状态,,,,, ,也在本场交出了美满答卷:劳塔罗梅开二度,,,,, ,图拉姆打入扳平球,,,,, ,好搭档一手策动了这场大逆转。。。。。。。 只管上赛季携带AC米兰最终狼奔豕突,,,,, ,阿莱格里在德比战场上双杀了国米。。。。。。。此番执掌那不勒斯,,,,, ,他的球队依然穿上了一身红衫。。。。。。。上半场国米最具威胁的攻势呈此刻一头一尾:迪乌夫在开场2分钟就接到劳塔罗做球,,,,, ,近距离射门颇具威胁;;;;;;; ;补时阶段,,,,, ,迪马尔科的左脚肆意球击中门楣。。。。。。。除此以表的大部门功夫里,,,,, ,国米被限度得比力显著,,,,, ,劳塔罗看起来依然状态欠安。。。。。。。相比之下,,,,, ,那不勒斯的攻势更盛:安吉萨两次得到良机,,,,, ,阿利松·桑托斯在左侧屡次爆破。。。。。。。 随着柯蒂斯·琼斯和马库斯·图拉姆在45分钟过后换下状态平平的苏契奇和皮奥,,,,, ,节拍鄙人半场陡然加快。。。。。。。那不勒斯率先遭逢险情,,,,, ,洛博特卡禁区内玩火,,,,, ,随即拦下试图断球的巴雷拉,,,,, ,慢作为显示他有手球嫌疑,,,,, ,但主裁索扎未予判罚。。。。。。。 意甲转播商DAZN的判罚嘉宾、前意甲主裁马雷利对此暗示,,,,, ,若是洛博特卡真的手球,,,,, ,则点球确凿无疑,,,,, ,但长功夫的回看都无法证明皮球的运动方向因而产生了扭转,,,,, ,因而判罚并无问题。。。。。。。这样的诠释,,,,, ,很难让整个蓝黑世界感应折服。。。。。。。 未能获得点球的国米,,,,, ,似乎在心态上受到了一些影响。。。。。。。接下来,,,,, ,他们在短功夫内接连失误,,,,, ,又送给那不勒斯两粒进球:第50分钟,,,,, ,国米在本方半场右侧进行陆续传递,,,,, ,巴雷拉停球失误被断下,,,,, ,阿利松·桑托斯的低射被马丁内斯截下,,,,, ,波利塔诺紧接着两连击破门。。。。。。。 仅仅3分钟后,,,,, ,又是桑托斯在左侧策动快攻,,,,, ,安吉萨的射门被挡出,,,,, ,此时皮球已经向着边线滚去。。。。。。。蓝黑球员们满心想着为界表球做筹备,,,,, ,却不料皮球任性地停在了场边,,,,, ,被迪洛伦佐争先拿到。。。。。。。那不勒斯队长顿时找到禁区内的赫伊隆。。。。。。,,,, ,后者对准远角,,,,, ,射门极其精准,,,,, ,但国米卫线对丹麦前锋没有形成任何滋扰,,,,, ,也要为丢球负上责任。。。。。。。 已经59岁的阿莱格里,,,,, ,此前已经在职业足球世界里执教过848场角逐,,,,, ,其中他的球队在2球当先的情况下,,,,, ,只输掉了1次:那是在2013-14赛季,,,,, ,他执教的是AC米兰,,,,, ,敌手是萨索洛。。。。。。。是役,,,,, ,罗比尼奥和巴洛特利开场不到一刻钟就为米兰获得两球当先,,,,, ,但彼时19岁的贝拉尔迪似乎有如神助,,,,, ,随即演出大四喜,,,,, ,而这场失利也让“囧叔”支出了帅位的价值。。。。。。。 尔后执教尤文,,,,, ,他的球队坚实无比,,,,, ,其时的其他意甲球队都领略:只有让那支尤文获切当先,,,,, ,角逐根基宣告实现。。。。。。。即便在“二进宫”尤文后的战绩并不梦想,,,,, ,尔后回归米兰也以失败告终,,,,, ,阿莱格里的球队也从未成为这种大逆转的布景板。。。。。。。 国米刻意创造汗青。。。。。。。劳塔罗在第56分钟迅速缩幼差距,,,,, ,为其后的逆转打下了基础。。。。。。航芰炙够魄颍,,,, ,迪马尔科在左侧送出传中,,,,, ,国米队长门前轻松铲射得手,,,,, ,打开本赛季的进球账户。。。。。。。第72分钟,,,,, ,迪乌夫右侧的传中找到了同胞图拉姆,,,,, ,法国前锋对准远角头槌,,,,, ,可皮球击中立柱。。。。。。;;;;;;; ;蛐碚钦庋木暌豢蹋,,,, ,让阿莱格里决定在终场前10分钟全线退守:他用新援中卫巴迪亚西勒,,,,, ,换下了本场阐发杰出、为国米右侧防区带来无限压力的阿利松·桑托斯。。。。。。。与此同时,,,,, ,齐沃也进行了换人:博尼登场替下巴斯托尼。。。。。。。 一来一去,,,,, ,国米齐全把握了进攻的自动权,,,,, ,而登场后的博尼没有在锋线挤占劳塔罗和图拉姆的地位,,,,, ,而是掌管球场左侧走廊,,,,, ,与迪乌夫一人一壁。。。。。。;;;;;;; ;蝗撕蠼鼋2分钟,,,,, ,正是博尼在左路策动攻势,,,,, ,皮球随后又来到卡洛斯·奥古斯托的脚下,,,,, ,巴西边卫传中到禁区中央,,,,, ,马库斯·图拉姆凭借一记相当有技术含量的头槌,,,,, ,将皮球送入球门的左下角。。。。。。。在这次匹敌中掌管盯防图拉姆、最终却呆立原地目送进球的,,,,, ,正是刚刚上场的巴迪亚西勒! 阿莱格里的守旧,,,,, ,为国米的逆转打开了大门。。。。。。。当然,,,,, ,他的球队在2比2的比分下也得到过绝佳机遇,,,,, ,但内雷斯和安吉萨先后挥霍,,,,, ,后者的那一次尤其令人印象深刻:替补登场的德布劳内左侧底线左近传中,,,,, ,卢卡迎球抽射偏出指标,,,,, ,却阴差阳错地将皮球送到了安吉萨的脚下,,,,, ,此时喀麦隆中场距离指标不到两米,,,,, ,刻下是一整个空门,,,,, ,却没有吃正部位将球打飞。。。。。。。要知路,,,,, ,这次射门的预期进球值,,,,, ,达到了0.93! “你知路那一刻我脑子里想起什么了吗???????看看有没有人能猜到。。。。。。。”赛后颁布会上,,,,, ,阿莱格里谈到这个问题,,,,, ,不由得笑了起来——那是他标志性的笑声,,,,, ,带着托斯卡纳式的粗粝和滑稽赣祝。。。。。。他搁浅了5秒钟,,,,, ,看着刻下一头雾水的记者们,,,,, ,随即给出了答案:“我想到的是那场驰名的3比2,,,,, ,那场决定联赛冠军的3比2,,,,, ,其时我执教的尤文图斯也经历过险些同样的事件。。。。。。。很遗憾,,,,, ,足球就是这样。。。。。。。当我们把机遇浪费掉的时辰,,,,, ,我其时脑子里就想:此刻他们注定要惩治我们了。。。。。。。” 阿莱格里指的是2017-18赛季冲刺阶段,,,,, ,尤文3比2客场战胜国米的那场角逐。。。。。。。其时国米错过了打入第三球的机遇,,,,, ,很快被伊瓜因攻入绝杀。。。。。。。但阿莱格里或许没想到两件事:其一,,,,, ,那场角逐出现了驰名的判罚争议(皮亚尼奇逃过了红牌),,,,, ,而当值主裁正是如今的意甲裁判指派员奥尔萨托;;;;;;; ;其二,,,,, ,其时的尤文惊险取胜并最终夺冠,,,,, ,力压的正是他的现东家那不勒斯!那场国度德比之后一天,,,,, ,心态有些失衡的那不勒斯做客佛罗伦萨,,,,, ,输了个0比3,,,,, ,也彻底断送了夺冠但愿——那是萨里时期的天蓝军团,,,,, ,与联赛冠军最靠近的一次。。。。。。。 无论若何,,,,, ,阿莱格里的直觉够正确。。。。。。。安吉萨错过空门后,,,,, ,国米在2分钟后实现绝杀:琼斯将球吊入禁区造作混乱,,,,, ,图拉姆和比塞克都在后点,,,,, ,但最终送出助攻的是阿坎吉——他把球横拨给劳塔罗,,,,, ,进球水到渠成,,,,, ,接下来的情景也不难想见:国米队长飞奔到北看台下方,,,,, ,站在告白牌上,,,,, ,高举双臂与球迷们一路庆祝。。。。。。。这已然成为国米现代史上最具标志性的画面。。。。。。。 梅开二度的劳塔罗也就此超过传奇涅尔什,,,,, ,以134粒进球成为国米史上意甲进球第三多的球员。。。。。。。不用太久,,,,, ,他还会超过排名第二的洛伦齐(138球),,,,, ,刻下仅剩下这座球场的名字:朱塞佩·梅阿查。。。。。。。浚浚????醋怕砺谆鹑鹊那构埽,,,, ,劳塔罗刻意用进球保卫自己的金靴,,,,, ,而国米也以三连胜高调开局。。。。。。。那不勒斯则在前3轮仅仅拿到3分,,,,, ,唯一的成功来自对阵热那亚,,,,, ,赢得也很艰巨。。。。。。。此前两次经历,,,,, ,阿莱格里能够用“治理层混乱”来诠释自己的困境,,,,, ,可这一次呢???????

【观察】让二追三,,,,,,国米疯狂到底!

? 记者 刘晓森 摄 · 更新于 2026-09-08 00:32:10

有关标签
#重点海报丨构建越发繁华的亚太共同体 #齐沃:今天的圣西罗像个沸腾的熔炉,,,,, ,最后我甚至无法通报站位 #玛莎拉蒂将同华为和江淮合作???????斯泰兰蒂斯:不予置评 #科斯塔库塔:但愿这次的尤文战米兰别像近几年那样 #《Jmcomic》

Overflow是什么?数字太大时计算机会出错,一文讲清

Overflow是什么?数字太大时计算机会出错,一文讲清: 本文具体介绍了Overflow是什么?数字太大时计算机会出错,一文讲清吃透一些可迁徙概想后,,,,, ,看科技新闻更罕见,,,,, ,不那么容易被神话带着跑。。。。。。。热点事务解读会表明哪些较确定、哪些仍在钻研,,,,, ,表述相对克造。。。。。。。推送可按兴致关停,,,,, ,不会一大早就被震惊体吵醒。。。。。。。有种被好好对待的感触,,,,, ,而不是被算法拽着满世界乱跑。。。。。。。先记一笔真实感触:稳、清、恳切,,,,, ,就这三点够用。。。。。。。

关键词:Overflow是什么?数字太大时计算机会出错,一文讲清

【网站地图】【sitemap】