【发布时间】:2011-06-11 14:31:48
【问题描述】:
这是代码:
int main()
{
char c = 0x00;
//c |= 0x0A;
c |= 0xA0;
while(c != 0x00)
{
cout << (c & 1) << endl;
c = (c >> 1);
}
}
当我使用0X0A 而不是0xA0 时,为什么这段代码可以工作,因为数字 0xA0 太大而无法容纳有符号的字符,但为什么我不允许为 0xA0 设置位?
当我打印循环时它永远不会中断并且只打印循环?怎么会?
【问题讨论】:
-
它打印一个,因为你告诉它 (
c & 1)。