<分区>
几天后我有一个C编程考试,在给我的示例中,有一个关于位运算符的问题。现在我知道 &、|、^、<<、>> 以及它们的作用。 但我对此有点困惑:
int main()
{
int i = 021, j = 0x2A, k,l,m;
k = i | j;
l = i & j;
m = k ^ l;
printf("%d, %d, %d, %d, %d\n",i,j,k,l,m);
return 0;
}
当我测试它时,输出是: 17 42 59 0 59
但是我不明白怎么办。二进制中的021是什么? 如果我把它当作 21,(如果我删除它前面的 0,输出完全改变。) 有人可以帮忙吗?