這裏是我的問題代碼:Unsigned char c = 255是否爲「11111111」?
#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
但是,我得到OK 1和2不好!
如果unsigned char b
是255(11111111),那麼〜b應該是00000000。爲什麼它不等於c?
我使用gcc在Linux SUSE上工作。
你可以使用一些代碼來證明?很難想象 –
*您的*代碼證明了這一點。這只是C的工作方式。 –
好的,你說得對。 –