家庭作业的C输出

时间:2011-01-10 12:30:14

标签: c

int main()
{
    signed int bit=512, mBit;
    {
        mBit = ~bit;
        bit = bit & ~bit ;
        printf("%d %d", bit, mBit);
    }
    return 0;
}

一个。 0,0   湾0,513
  C。 512,0   d。 0,-513

伙计们我没有得到这个问题的答案,也无法解释这个问题。那么请你提供适当解释的答案。

1 个答案:

答案 0 :(得分:5)

正确答案是d:http://ideone.com/frKOz

  • 位为0,因为bit & ~bit总是导致零(1000000000 & 0111111111)。
  • mbit是-513,因为反转512是-513。

编辑:为什么mbit -513?

请参阅有符号整数处理的说明:http://www.rwc.uc.edu/koehler/comath/13.html