c语言中-0和0是一样的吗

Python037

c语言中-0和0是一样的吗,第1张

一样的

#include <stdio.h>

void main()

{

printf("%s\n",(0==-0)?"一样":"不一样")

}

运行结果:

一样

请按任意键继续. . .

+0、-0,在计算机中,都是不存在的。

在计算机中,数值一律用补码表示和存储。

0 在补码中,只有一个编码 0000 0000。

------------------

只有在原码和反码中,才是有两个零(+0、-0)的编码。

但是,在计算机中,原码和反码,都不存在。

所以,+0、-0,在计算机中,都是不存在的。

那么,琢磨它们,解释它们,都是毫无意义的。

因为

-1

在内存中的存储是

FFFFFFFF

-0比-1大于1,所以

-0

本来实际内存应该为

100000000

然而整形只有四个字节,所以必须舍去最高位1,最后成为

00000000

和+0没有什么区别,但是进行过类似的运算在

EFL

标记位中的

进位标记和符号位

会改变