【发布时间】:2014-08-06 09:18:28
【问题描述】:
我正在使用 Dev-C++ 编译器。这个程序应该打印30,但它的打印是384。
#include <stdio.h>
int main() {
int n = 3;
int ans;
ans = n<<3 + n<<1;
printf("%d", ans);
getch();
return 0;
}
【问题讨论】:
-
有谁知道 Dev-C++ 是否提供纯 C 模式?如果不是,C 标记可能应该更改为 C++。
-
Dev C++ 只是一个围绕旧版本 Mingw/GCC/G++ 的(过时的)IDE。如果我没记错的话,它会根据文件扩展名 .c 或 .cpp 选择语言。
-
@user3745158 请注意
int是有符号类型,对有符号类型执行移位操作没有任何意义。您应该将其切换为uint32_t或类似名称。 -
@Lundin 为什么没有意义?只要您知道输出将是什么,这对我来说似乎很好。我会说,对小于 10 的整数执行小于 4 的两次移位是非常没有问题的。
标签: c bitwise-operators dev-c++