【发布时间】:2013-07-25 22:36:43
【问题描述】:
这是我的问题代码:
#include "stdio.h"
int main()
{
char a = -1;
unsigned char b = 255;
unsigned char c = 0;
if((~a) == c)
printf("OK 1");
else
printf("bad 1");
printf("\n");
if((~b) == c)
printf("OK 2");
else
printf("bad 2");
printf("\n");
}
我希望这会打印出来:
OK 1
OK 2
但是,我得到好的 1 和坏的 2!
如果unsigned char b 是255(11111111),那么~b 应该是00000000。为什么它不等于c?
我在 Linux SUSE 上工作,使用 gcc。
【问题讨论】: