当我们限制整数的最大尺寸,我们的结果超过最大尺寸时,整数溢出是一个问题,让我使用基数 10 进行演示。
假设我们最多有 3 个以 10 它是基数的数字,所以我们能得到的最大值是 但让我们试着超越限制,通过 999 上加 1 为了更好地理解,我们显然知道结果应该是 1000 ,但在我们有限的环境中,我们得到的值是 0...为什么会这样?
很简单,它对我们的数字进行了正常的加法算法,所以它添加了最后一个数字 1,得到了 10,然后进位 所以又加了 9 和 1.同样的事情,结果是0,有进位1。最后一个,我们把1加到9,得到进位1,值为零,但是我们不能把进位数加到数字的前面,因为我们的数字被限制了。 3 位数字,因此,我们忘记了进位,并在处理器中设置了溢出标志。
这与计算机中发生的情况相同。让我们看看 C:
中的示例
#include <stdint.h> #include <stdio.h> uint8_t get_<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/72718.html" target="_blank">overflow</a>(uint8__t num) { uint8_t 最大值 = 255; 返回最大值 数字; } int32_t 主函数(无效) { printf("%un", get_overflow(1)); printf("%un", get_overflow(2)); printf("%un", get_overflow(3)); 返回0; } </stdio.h></stdint.h>
在这里,因为我们使用它 8 无符号整数意味着我们只能表示最大的 8 位无符号数,即 255(从 0 到 255)如果我们试试的话 255 上加 1.它结束并重新开始 0 开始计数。
但是,如果我们使用带有符号的数字,就会发生一些奇怪的事情,请参考以下示例:
#include <stdint.h> #include <stdio.h> int8_t get_overflow(int8_t num) { int8_t 最大值 = 127; 返回最大值 数字; } int32_t 主函数(无效) { printf("%dn", get_overflow(1)); printf("%dn", get_overflow(2)); printf("%dn", get_overflow(3)); 返回0; } </stdio.h></stdint.h>
Obs:在这里,我们必须记住,由于符号占据一个,无符号整数的范围从-128到127减半。
如果您操作上述代码,您可能会感到惊讶,该值不是零,而是该类型可容纳的最小数字(-128)。为什么??
这种情况发生是因为如何用二进制存储符号数字,它们以我们称之为补码的方式存储,以便于操作。
二进制补码??补码是一种相对简单的二进制数表示方法,您可以根据以下算法进行测试。
输入:一个数字x
让我们看一个数字 3 简单的例子,二进制为 0011,翻转所有位置,将是 1100,然后加 1 将是 1101
由于这种奇怪的表达形式,我们在溢出时得到的数字是 -128.最酷的是,如果我们使用二进制补码,我们可以使用相同的电路进行加减。
以上是整数溢出的详细内容,请关注其他相关文章!
整数溢出-C
自建服务器,掌控未来,高效稳定,尽在掌握!
理解复制到剪贴板:高效数据传递的秘诀
踏上为期一年的软件工程之旅:从 C 到 Python、JavaScript、Node.js、DevOps 等-C
远程桌面连接:命令使用详解与图解(以下是对这个标题的扩展解释和内容建议)内容建议:首先,你可以从远程桌面连接(Remote Desktop Connection, 简称RDP)的基本概念和用途入手,解释为什么需要使用远程桌面连接命令。然后,详细列出并解释如何使用远程桌面连接的命令,包括命令的语法、参数和示例。接下来,为了增强说服力和直观性,你可以插入一些图片来辅助说明。这些图片可以包括:1. 命令提示符(Command Prompt)或PowerShell窗口的截图,展示如何输入远程桌面连接命令。2. 远程桌面连接对话框的截图,展示如何设置连接参数。3. 连接成功后远程桌面的截图,展示用户如何操作远程计算机。在每个步骤旁边,你可以添加一些简短的文字说明,
远程桌面无法复制粘贴?操作解决!
表格为何复制粘贴失效?揭秘背后原因!
踏上为期一年的软件工程之旅:从 C 到 Python、JavaScript、Node.js、DevOps 等-C
《王者荣耀》元流之子上线时间介绍-手机游戏策略
“最强祖师”升级专业技能道具介绍-手机游戏策略
最强祖师后勤弟子招募策略-手机游戏策略
南宫婉最强祖师的技能强度和玩法策略-手机游戏策略
“绝区零”体力使用策略-手机游戏策略
阴阳师禅心云外镜新皮肤获取策略-手机游戏策略
如何抗腐蚀不朽之旅 《不朽之旅》腐化装备保障机制介绍-手机游戏策略
《地下城与勇士:起源》女鬼剑上线时间详解-手机游戏策略
《绝区零》加好友的具体步骤-手机游戏策略
《未定事件簿》四周年福利活动介绍-手机游戏策略
妄想山海异兽角获取方法介绍-手游策略