一个通常的疏忽是认为除以零是 SIGFPE 的唯一来源。在一些架构上(包括 IA-32),使用 INT_MIN(最小的可以被表示的负整数值)除以 -1 的整数除法也会触发这个信号,因为商是一个无法被表示的正数。(比如 8 位有符号整数可以表示 -128、+127 和它们之间的整数。-128÷-1=+128 > +127,因此无法被表示而产生溢出并触发此信号)
2024年10月02日1分钟阅读
一个通常的疏忽是认为除以零是 SIGFPE 的唯一来源。在一些架构上(包括 IA-32),使用 INT_MIN(最小的可以被表示的负整数值)除以 -1 的整数除法也会触发这个信号,因为商是一个无法被表示的正数。(比如 8 位有符号整数可以表示 -128、+127 和它们之间的整数。-128÷-1=+128 > +127,因此无法被表示而产生溢出并触发此信号)