在做C++各类题目的过程中,有很多题目看似,却有点难(对于我来说~~),所以我将这些题目积累慢慢积累下来,并记录。
1. 在32 bit系统中函数foo(2^31-3)的值是:
int foo(int x)
{
return x&-x;
}
解析:2^31是异或的意思,x的值是1010,x&-x的意思是x与-x,负x的二进制表示是:绝对值取反加1。所以最后的值是2。
2. unsigned char和char
下面代码输出结果;
unsigned char ui= 0x80;
printf("0x%x\n", ~ui>>3+1);
char i=