我觉得我遗漏了一些关于数字系统的基本知识,但我真的很困惑我正在尝试使用按位运算符的下面一段代码:
x=56;
printf("\nHere :\n%x %x\n",x,077);
x=x& ~077;
printf("%x\n",x);
它将077视为八进制(hex 3f)。 如果我只放77,则将其视为十进制(十六进制4d)。如果放177,则将其视为十进制(十六进制b1)。我指的是Richie和Kernighan的C编程书。
请帮忙。
答案 0 :(得分:6)
完全符合预期。从0开始,它是八进制。从0x开始,它是十六进制。否则,它是十进制的。
有什么问题?