使用常量进行算术运算时出现溢出错误

卜拉欣·布克里亚特

我尝试了以下代码:

int x, y;
x = y = int.MaxValue;

int result = x + y;

这段代码可以正常工作,结果将包含-2(我知道为什么)。

但是当这样做时:

const int x = int.MaxValue;
const int y = int.MaxValue;

int result = x + y;

由于溢出问题,这将无法编译。为什么?

乔恩·斯基特

因为xy都是编译时常量,所以也是如此x + y编译器知道结果将溢出,因此抱怨它。

您可以使用unchecked表达式来解决此问题

int result = unchecked(x + y);

从C#5规范的第7.6.12 -上市后+-/*

当上述操作之一产生的结果太大而无法在目标类型中表示时,执行操作的上下文将控制所得的行为:

  • checked上下文中,如果运算是一个常量表达式(第7.19节),则会发生编译时错误。
  • unchecked上下文中,结果将被舍弃,方法是丢弃任何不适合目标类型的高阶位。

对于未被任何checkedunchecked运算符或语句包围的非常量表达式(在运行时评估的表达式),默认的溢出检查上下文是unchecked除非外部因素(例如编译器开关和执行环境配置)要求进行检查的评估。

对于常量表达式(可以在编译时完全求值的表达式),默认的溢出检查上下文始终为checked除非将常量表达式显式放置在unchecked上下文中,否则在表达式的编译时求值过程中发生的溢出始终会导致编译时错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用常量进行算术运算时出现溢出错误

来自分类Dev

按[TimeStamp](列名)排序时出现算术溢出错误

来自分类Dev

如何在python中进行算术运算时检测溢出?

来自分类Dev

算术溢出错误-802

来自分类Dev

插入时在 INT 列上使用 SUM 时如何防止算术溢出错误?

来自分类Dev

循环时出现堆栈溢出错误

来自分类Dev

将numeric(9,2)转换为numeric(9,3)时出现算术溢出错误

来自分类Dev

使用 sass 算术运算符时出现 W3c 验证错误

来自分类Dev

使用MIN时-算术溢出错误将表达式转换为数据类型datetime

来自分类Dev

出现错误时,算术溢出错误将数字转换为数据类型数字

来自分类Dev

如何修复错误“算术运算导致溢出”

来自分类Dev

尝试创建数组时出现堆栈溢出错误

来自分类Dev

在Oracle中截断表时出现数字溢出错误

来自分类Dev

遍历链表时出现堆栈溢出错误

来自分类Dev

在 Python 中潜水大数时出现溢出错误

来自分类Dev

算术运算给出错误的结果

来自分类Dev

在执行查询时将数值转换为数据类型数值的算术溢出错误

来自分类Dev

在VBA中使用整数评估算术表达式的溢出错误

来自分类Dev

算术溢出错误转换SQL中的浮点错误

来自分类Dev

算术运算导致溢出..以下高亮代码中的错误

来自分类Dev

尝试使用new分配内存时出现算术溢出警告

来自分类Dev

Swift中如何捕获算术溢出错误?

来自分类Dev

数据类型tinyint的算术溢出错误,值= -1

来自分类Dev

SQL Server 2008中的算术溢出错误消息

来自分类Dev

十进制字段上的算术溢出错误

来自分类Dev

创建带有算术溢出错误的表

来自分类Dev

类型 varchar 值的算术溢出错误 =770214566.000000000

来自分类Dev

使用泛型进行算术运算时不能应用二进制运算

来自分类Dev

使用多处理时 scipy 优化的溢出错误

Related 相关文章

  1. 1

    使用常量进行算术运算时出现溢出错误

  2. 2

    按[TimeStamp](列名)排序时出现算术溢出错误

  3. 3

    如何在python中进行算术运算时检测溢出?

  4. 4

    算术溢出错误-802

  5. 5

    插入时在 INT 列上使用 SUM 时如何防止算术溢出错误?

  6. 6

    循环时出现堆栈溢出错误

  7. 7

    将numeric(9,2)转换为numeric(9,3)时出现算术溢出错误

  8. 8

    使用 sass 算术运算符时出现 W3c 验证错误

  9. 9

    使用MIN时-算术溢出错误将表达式转换为数据类型datetime

  10. 10

    出现错误时,算术溢出错误将数字转换为数据类型数字

  11. 11

    如何修复错误“算术运算导致溢出”

  12. 12

    尝试创建数组时出现堆栈溢出错误

  13. 13

    在Oracle中截断表时出现数字溢出错误

  14. 14

    遍历链表时出现堆栈溢出错误

  15. 15

    在 Python 中潜水大数时出现溢出错误

  16. 16

    算术运算给出错误的结果

  17. 17

    在执行查询时将数值转换为数据类型数值的算术溢出错误

  18. 18

    在VBA中使用整数评估算术表达式的溢出错误

  19. 19

    算术溢出错误转换SQL中的浮点错误

  20. 20

    算术运算导致溢出..以下高亮代码中的错误

  21. 21

    尝试使用new分配内存时出现算术溢出警告

  22. 22

    Swift中如何捕获算术溢出错误?

  23. 23

    数据类型tinyint的算术溢出错误,值= -1

  24. 24

    SQL Server 2008中的算术溢出错误消息

  25. 25

    十进制字段上的算术溢出错误

  26. 26

    创建带有算术溢出错误的表

  27. 27

    类型 varchar 值的算术溢出错误 =770214566.000000000

  28. 28

    使用泛型进行算术运算时不能应用二进制运算

  29. 29

    使用多处理时 scipy 优化的溢出错误

热门标签

归档