当前位置:首页 » 编程软件 » 为什么编译除以0不报错

为什么编译除以0不报错

发布时间: 2022-07-17 04:02:08

Ⅰ 奇怪的除以0

你上面的解释是基本正确的。实际上造成二者的差异的主要原因是在计算时,完成计算的处理单元不同。具体要从CPU的运算体系说起,简单的说,整数的运算和浮点数的运算不在同一运算单元中,一般CPU中都有浮点运算协处理器,浮点运算都是在这个协处理器中进行的,然后将运算结果交给CPU,让CPU进一步处理。为了保证CPU处理浮点运算结果的安全性,保护程序,因此浮点运算协处理器遇到除0的情况时,返回一个无穷大(当然在数学上这也是合理的),而不产生一个错误中断,将这个无穷大交还给CPU后,CPU也认为是合理的,不会中断,继续运行下去,因此不会产生任何异常。

但如果是整数除0,由于整形计算都是在CPU中进行,除0后会产生一个中断,编译器捕获到这个中断向量以后就会抛出一个异常(java)或者编译错误(C/C++)。

c语言中除法里除数为0,编译器会不会报错么

一般编译器进行编译时不对除数做检查,这应该由程序员在代码里在除法前对除数做判断保证的

Ⅲ 程序正常编译,但执行过程中因为被除数为0而发生错误,这是哪种错误

这是运行时错误啊, 除数当然不能为0了,

Ⅳ 为啥我这个输出一直是0,编译没错误,运行就是0

scanf("%lf",&x); 就可以了,没有必要限制手动输入的格式。

Ⅳ java新手,为什么除数为0,却不报错

因为0.0是float类型在除法中不会用准确的0而是一个接近0的小数

Ⅵ C++能实现任何数除以0的值的运算的原因是什么

这应该和开发环境处理异常问题有关,我们在写程序的时候会存在语法错误或是逻辑错误,而语法错误编译通不过,系统能直接找到并给出,但逻辑错误编译能通过,系统则不能找到,只会在执行的时候出现异常的错误。而除以0在开发环境中是没有语法错误的,系统则不会报错,编译能通过,而我们在运行的时候就会出现了一些莫名其妙的异常错误。以上也是我的猜测,没深入研究过。

Ⅶ 除数为何不能为0啊,为什么除以0等于错误

因为除数表示把一个数分成多少份,如果是2,就是把一个数分成2份;如果是5,就是把一个数分成5份;而如果是0,那么,就是把一个数分成0份,这显然是没有道理的,是不成立的,所以0不能够做除数。

Ⅷ C++中,以下代码有错误为何编译器不会报错呀

大哥,操作符不是定义的,而是要重载。
看了这句应该理解为何了吧?
也就是说,你的类如果不重载操作符,那么将调用系统自定义的操作符。
所以编译器不会报错,也没有错误。
除非你要重载操作符,来完成你特定的操作。

Ⅸ Java中为什么整数除以0出现异常

这种问题写个代码跑一下就可以了,java中整数除以0会引发

java.lang.ArithmeticException: / by zero

ArithmeticException是出现异常的运算条件时,抛出此异常,结果如下图:

除此之外还要注意,浮点数除以0将会的得到 Infinity(无穷大)或NaN结果,但不会报异常。

Ⅹ 为什么我这个程序编译不报错,运行报错

这个是运行时错误,编译器在编译时无法检查此类错误,因为很多情况下值并不是固定的,编译器无法判断值是否合法,你这种情况就是数组下标越界,再仔细检查一下代码

热点内容
超级脚本制作 发布:2025-02-07 19:31:30 浏览:486
怎么查看支付宝的账号密码 发布:2025-02-07 19:26:48 浏览:15
惠普服务器查看ip指令 发布:2025-02-07 19:26:47 浏览:434
算法设计模式 发布:2025-02-07 19:15:52 浏览:743
服务器1u能连接几台电脑 发布:2025-02-07 18:50:02 浏览:153
立人编译 发布:2025-02-07 18:48:32 浏览:765
日产途达四驱的有哪些配置 发布:2025-02-07 18:42:02 浏览:831
服务器搭建镜像站 发布:2025-02-07 18:41:55 浏览:377
游戏上云成标配云服务器该怎么选 发布:2025-02-07 18:26:13 浏览:141
哪个安卓手机自带系统没有广告 发布:2025-02-07 18:22:36 浏览:724