【发布时间】:2018-01-28 10:34:15
【问题描述】:
我在这里遇到了一个奇怪的问题。考虑这段代码:
#include <stdio.h>
int main()
{
printf("%u\n", (55 & 00000111) + 1);
return 0;
}
这段代码在编译和执行后,结果为 2。
另一方面,Python 会产生这样的结果:
>>> (55 & 0b00000111) + 1
8
为什么会有不同的结果?
【问题讨论】:
-
00000111 不是二进制常量
-
请原谅我的无知,但那是什么?另外,您是指 C 代码中的 00000111 吗?
-
一般来说,如果你怀疑一种语言做一个简单的计算错误,检查你的代码。出现问题的机会要高得多。
标签: python c python-2.7 bit-manipulation bitwise-operators