IEEE浮点数有一个位用于指示符号,这意味着您可以在技术上具有零(+0和-0)的不同二进制表示.我是否可以在C中进行算术运算,从而产生负零浮点值?
这个问题的灵感来自于另一个问题是否可以安全地比较0.0f使用==,我还想知道是否还有其他方法来表示零,这会导致float1 == 0.0f看似完全相等的值.
[编辑]请不要评价比较花车的平等安全性!我并没有试图添加那些重复的问题.
可能重复:
返回值1.#INF000
我一直认为除以0会导致编译程序崩溃
但是我今天发现(使用VC++ 2010 Express),除以0得到的东西叫做1.#INF000,它应该是正无穷大
当它被传递给一个函数时,它被传递为-1.#IND000
这是怎么回事?
在Google上搜索1.#INF000和-1.#IND000也没有提供任何明确的解释
它只是VC++特有的东西吗?
在表达式中a + b,a保证在之前进行评估b,还是未指定评估的顺序?我认为这是后者,但我很难在标准中找到明确的答案.
由于我不知道C是否处理与C++有所不同,或者如果在C++ 11中简化了评估顺序规则,我将把这个问题标记为三个.
我在编译以下程序时非法使用浮点错误.请让我知道我犯了什么错误.
#include<stdio.h>
#include<conio.h>
void main()
{
float a;
clrscr();
printf("\n Enter the num : ");
scanf("%f", &a);
if ( a >= 0 )
{
if ( (a % 2) == 0 ) //ERROR HERE
{
printf("\n You entered a positive even num");
}
else
{
printf("\n You entered a positive odd num");
}
}
else
{
if ( (a % 2) == 0 ) //ERROR HERE
{
printf("\n You entered a negative even num");
}
else
{
printf("\n You entered …Run Code Online (Sandbox Code Playgroud)