From 1fe823a4be81ef74cd1fbf1c64684b2c1ca31325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=A4=A7=E4=BB=99?= <1900919313@qq.com> Date: Mon, 26 Aug 2024 09:38:44 +0800 Subject: [PATCH] c --- docs/notes/01_c-basic/03_xdx/index.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/notes/01_c-basic/03_xdx/index.md b/docs/notes/01_c-basic/03_xdx/index.md index 61bd06d..d95eaa8 100644 --- a/docs/notes/01_c-basic/03_xdx/index.md +++ b/docs/notes/01_c-basic/03_xdx/index.md @@ -602,8 +602,13 @@ int main() { ![](./assets/3.jpg) * 在程序中也是一样的,各种整数类型在内存中占用的存储单元是不同的,如:short 在内存中占用 2 个字节的存储单元,int 在内存中占用 4 个字节的存储单元。这也就意味着,各种整数类型只能存储有限的数值,当数值过大或多小的时候,超出的部分就会被直接截掉,那么数值就不能正确的存储,我们就将这种现象就称为`溢出`(overflow)。 - * 如果达到了最大值,再进行加法计算,数据就会超过该类型能够表示的最大值,叫做`上溢出`。 - * 如果这个数目前是最小值,再进行减法计算, 数据就会超过该类型的最小值, 叫做`下溢出`。 + +> [!NOTE] +> +> * 如果这个数目前是`最大值`,再进行`加法`计算,数据就会超过该类型能够表示的最大值,叫做`上溢出`(如果最大值 + 1 会“绕回”到最小值)。 +> * 如果这个数目前是`最小值`,再进行`减法`计算,数据就会超过该类型能够表示的最小值, 叫做`下溢出`(如果最小值 - 1 会“绕回”到最大值)。 +> +> 在 C 语言中,程序产生数值溢出的时候,并不会引起错误而自动停止,是因为计算机直接按照二进制补码的运算规则进行处理;但是,这可能会导致不可预料的后果。因此,编程时要特别注意避免数值溢出,特别是在涉及大数或小数的运算时。 ### 1.3.2 无符号数的取值范围