-2

我觉得我错过了一些关于数字系统的基本知识,但我真的对下面的代码感到困惑,我正在尝试使用按位运算符:

x=56;
printf("\nHere  :\n%x   %x\n",x,077);
x=x& ~077;
printf("%x\n",x);

它将 077 视为八进制(十六进制 3f)。如果我只输入 77,它会将其视为十进制(十六进制 4d)。如果放 177 ,则将其视为十进制(十六进制 b1)。我指的是 Richie 和 Kernighan 的《C 编程》一书。

请帮忙。

4

1 回答 1

6

一切都和预期的一样。以 0 开头,它是八进制的。以 0x 开头,它是十六进制的。否则为十进制。

问题是什么?

于 2013-06-26T06:49:55.357 回答