我是C
的新手,并使用~
(一个补码)一元运算符来查找unsigned char
的上限。
printf("Maximum Unsigned Char %d\n", (unsigned char) ~0);
// output:
// Maximum Unsigned Char 255
// when I try to write it in another way:
unsigned char t = 0;
printf("Maximum Unsigned Char %d\n", ~t);
// output:
// Maximum Unsigned Char -1
我对不同的输出感到困惑。因为我已明确将t定义为unsigned char
所以我期望255
但得到-1
。